在 Vue.js 中使用 JSX 写组件
在 Vue.js 中写 JSX
main.js
:
import Vue from 'vue'; import App from './App.vue'; Vue.config.productionTip = false; new Vue({ render: h => h(App) }).$mount('#app');
App.vue
:
<script> import MyButton from '@/components/MyButton'; const HelloWorld = ({props}) => <p>Hello {props.message}</p> export default { name: 'App', components: {MyButton}, methods: { alertHi(e) { alert(`Hi, ${e}`); } }, render() { return ( <div> <HelloWorld message="JSX"/> <MyButton onSayHi={this.alertHi}/> </div> ); } }; </script> <style> </style>
MyButton.vue
:
<script> export default { name: 'MyButton', methods: { handleButtonClick(e) { e.preventDefault(); this.$emit('sayHi', 'JSX'); } }, render() { return ( <button class="button button1" onClick={this.handleButtonClick} >Click Me!</button> ); } }; </script> <style scoped> .button { background-color: #4CAF50; border: none; color: white; padding: 16px 32px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; margin: 4px 2px; transition-duration: 0.4s; cursor: pointer; } .button1 { background-color: white; color: black; border: 2px solid #4CAF50; } .button1:hover { background-color: #4CAF50; color: white; } </style>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: Docker 常用命令
下一篇: 不要相信一个熬夜的人说的每一句话
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论