博客列表 >Vue实例演示父子组件之间通信方式

Vue实例演示父子组件之间通信方式

吳
原创
2021年01月22日 02:30:06517浏览

1.父组件向子组件通过自定义参数传参

  1. <div id="app">
  2. <btn-inc :my-name="username" :my-count="count"></btn-inc>
  3. </div>
  4. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  5. <script>
  6. const vm = new Vue({
  7. el: '#app',
  8. data() {
  9. return {
  10. username: '天蓬大人',
  11. count: 0,
  12. }
  13. },
  14. // 局部组件
  15. components: {
  16. btnInc: {
  17. props: ["myName", "myCount"],
  18. template: `
  19. <div>
  20. <button @click="num++">点赞:+ {{num}}</button>
  21. <span>{{myName}}</span>
  22. </div>
  23. `,
  24. data() {
  25. return {
  26. num: this.myCount,
  27. };
  28. }
  29. }
  30. }
  31. })
  32. </script>

2.子组件向父组件通过自定义方法传参

  1. <div id="app">
  2. <btn-inc :my-name="username" :my-count="count" @click-count="handle"></btn-inc>
  3. </div>
  4. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  5. <script>
  6. const vm = new Vue({
  7. el: '#app',
  8. data() {
  9. return {
  10. username: '天蓬老师',
  11. count: 0,
  12. };
  13. },
  14. // 局部组件
  15. components: {
  16. btnInc: {
  17. props: ["myName", "myCount"],
  18. template: `
  19. <div>
  20. <button @click="$emit('click-count',10)">点赞:+ {{myCount}}</button>
  21. <span>{{myName}}</span>
  22. </div>
  23. `,
  24. },
  25. },
  26. // 子组件更新父组件的自定义方法
  27. methods: {
  28. handle(value) {
  29. console.log(this.count);
  30. this.count += value;
  31. this.username = "天蓬大人";
  32. }
  33. },
  34. })
  35. </script>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议