登录  /  注册
博主信息
博文 49
粉丝 0
评论 0
访问量 47790
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
父子组件之间的通信方式
lus菜
原创
917人浏览过

组件之间的传参:

  1. 父组件 子组件 传参: 自定义属性
  2. 子组件 父组件 传参: 自定义方法

父组件向子组件传参:

样式代码:

  1. <!-- 导入vue框架 -->
  2. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  3. <body>
  4. <div id="app">
  5. <!-- 父组件是通过自定义属性的方式将参数传到子组件中的 -->
  6. <btn-inc :my-name="username" :my-count="count"></btn->
  7. </div>
  8. <script>
  9. const vm = new Vue({
  10. el: document.querySelector("#app"),
  11. data() {
  12. return {
  13. username:"为你点赞",
  14. count: 0,
  15. };
  16. },
  17. // 局部组件子组件
  18. components: {
  19. btnInc: {
  20. // props接受父组件向子组件的自定义传参
  21. props: ["myName", "myCount"],
  22. // 报错原因,组件之间的数据传递是单向的,不允许在子组件中更新父组件中的数据
  23. template: `
  24. <div>
  25. <button @click="num++">点赞: + {{num}}</button>
  26. <span>{{myName}}</span>
  27. </div>
  28. `,
  29. data() {
  30. return {
  31. num: this.myCount,
  32. };
  33. },
  34. methods: {
  35. inc(n) {
  36. this.num += n;
  37. },
  38. },
  39. },
  40. },
  41. });
  42. </script>
  43. </body>

效果预览:

子组件向父组件传参:

样式代码:

  1. <!-- 导入vue框架 -->
  2. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  3. <body>
  4. <div id="app">
  5. <!-- 子组件中更新父组件的数据是通过事件完成 -->
  6. <btn-inc :my-name="username" :my-count="count" @click-count="handle"></btn-inc>
  7. </div>
  8. <script>
  9. const vm = new Vue({
  10. // 子组件向父组件传参是通过声明同名事件来实现
  11. el: document.querySelector("#app"),
  12. data() {
  13. return {
  14. username: "菜市场买菜",
  15. count: 0,
  16. };
  17. },
  18. // 局部组件子组件
  19. components: {
  20. btnInc: {
  21. //props接受父组件向子组件的自定义传参
  22. props: ["myName", "myCount"],
  23. // 报错原因,组件之间的数据传递是单向的,不允许在子组件中更新父组件中的数据
  24. template: `
  25. <div>
  26. <button @click="$emit('click-count',10)">点赞: + {{myCount}}</button>
  27. <span>{{myName}}</span>
  28. </div>
  29. `,
  30. },
  31. },
  32. // 父组件更新数据的方法
  33. methods: {
  34. handle(value) {
  35. console.log(vm.count);
  36. this.count += value;
  37. this.username = "商业城";
  38. },
  39. },
  40. });
  41. </script>
  42. </body>

效果预览:

批改老师:天蓬老师天蓬老师

批改状态:合格

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

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

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