博主信息
博文 50
粉丝 0
评论 0
访问量 47970
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
Vue组件及通信方式
手机用户1580651468
原创
632人浏览过

Vue组件及通信方式

一. 声明组件与子组件,以及他们之间的通信方式

一). 父-子:自定义属性

1.代码

  1. <body>
  2. <!-- 挂载点 -->
  3. <div id="app"></div>
  4. <!-- 父组件的模板代码 -->
  5. <template id="parent">
  6. <counter username="admin" email="496542445@qq.com" />
  7. </template>
  8. <!-- 子组件的模板代码 -->
  9. <template id="child">
  10. <p>UserName:{{username}}</p>
  11. <p>UserEmail:{{email}}</p>
  12. </template>
  13. <script>
  14. const app = Vue.createApp({
  15. // 父组件
  16. template: `#parent`,
  17. });
  18. app.component("counter", {
  19. // 接受父组件的传过来的参数
  20. props: ["username", "email"],
  21. template: `#child`,
  22. });
  23. const vm = app.mount("#app");
  24. </script>
  25. </body>

2.实现效果图

二).子-父:自定义事件

1.代码

  1. <body>
  2. <!-- 挂载点 -->
  3. <div id="app">
  4. <counter @review="review" />
  5. </div>
  6. <template id="counter">
  7. <button @click="count++">点赞:+{{count}}</button>
  8. <button @click="review()">评论</button>
  9. </template>
  10. <script>
  11. const app = Vue.createApp({
  12. methods: {
  13. review(count) {
  14. console.log(count);
  15. },
  16. },
  17. });
  18. app.component("counter", {
  19. template: `#counter`,
  20. data() {
  21. return {
  22. count: 0,
  23. };
  24. },
  25. methods: {
  26. review() {
  27. this.$emit("review", this.count);
  28. },
  29. },
  30. });
  31. const vm = app.mount("#app");
  32. // 1. 父-子:自定义属性
  33. // 2.子-父:自定义事件
  34. </script>
  35. </body>

2.实现的效果图

批改老师:PHPzPHPz

批改状态:合格

老师批语:总结的不错, 继续加油
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学