在 Vue.js 中使用 JSX 写组件

发布于 2024-11-10 20:30:16 字数 1672 浏览 7 评论 0

在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

西瑶

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

一梦浮鱼

文章 0 评论 0

mb_Z9jVigFL

文章 0 评论 0

伴随着你

文章 0 评论 0

耳钉梦

文章 0 评论 0

18618447101

文章 0 评论 0

蜗牛

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文