• 技术文章 >web前端 >js教程

    Vue子组件与父组件之间的通信(附代码)

    php是最好的语言php是最好的语言2018-08-06 15:54:26原创657

    1.环境搭建

    2.父组件向子组件传值

    在Child.vue中创建props,用于接收父组件传递的值

    <template>
        <p>
            <p v-for="(item,key) of c" :key="key">
               {{key}}: {{item}}
            </p>
        </p>
    </template>
    
    <script>
    export default {
        name: 'child',
        props: {
            c: Array
        }
    }
    </script>
    
    <style  scoped>
        
    </style>

    在Home.vue中注册Child组件,并在template的p标签中添加home-child标签,标签中使用v-bind指令绑定c。子组件通过props就可以接受到这个父组件传递的值。

    <template>
      <p class="hello">
        <home-child v-bind:c="c"></home-child>
      </p>
    </template>
    
    <script>
    import HomeChild from '@/components/common/Child'
    export default {
      name: 'home',
      components: {
        HomeChild
      },
      data () {
        return {
          c:[1,2,3]
        }
      }
    }
    </script>
    
    <style scoped>
    
    </style>

    结果
    1.png

    3.子组件向父组件传值

    给按钮绑定点击事件ChildClick
    在事件的函数中使用$emit来触发一个自定义事件,并传递一个参数,这个参数就是子组件要传递给父组件的值。

    <template>
        <p>
            <p v-for="(item,key) of c" :key="key">
               {{key}}: {{item}}
            </p>
            <button v-on:click="ChildClick">点击向父组件传值</button>
            <span>{{data}}</span>
        </p>
    </template>
    
    <script>
    export default {
        name: 'child',
        props: {
            c: Array,
            data: String
        },
        methods: {
            ChildClick: function () {
                this.$emit("ListenChild","I am child.vue")
            }
        }
    }
    </script>
    
    <style  scoped>
    
    </style>

    在父组件中的home-child标签中监听该自定义事件,并添加一个响应该事件的方法ShowChild。

    <template>
      <p class="hello">
        <home-child v-bind:c="c" :data="data" v-on:ListenChild="ShowChild"></home-child>
      </p>
    </template>
    
    <script>
    import HomeChild from '@/components/common/Child'
    export default {
      name: 'Home',
      components: {
        HomeChild
      },
      data () {
        return {
          c:[1,2,3],
          data: " "
        }
      },
      methods: {
        ShowChild: function (data) {
          this.data = data
          console.log("data:" + data)
        }
      }
    }
    </script>
    
    <style scoped>
    
    </style>

    结果:
    1.png

    点击按钮后:
    1.png

    相关文章:
    实例详解vue组件间通信子与父详解(二)

    vue子组件与父组件通信详解

    以上就是Vue子组件与父组件之间的通信(附代码)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:javascript html vue.js
    上一篇:案例分享转盘抽奖的demo(附代码) 下一篇:js教程 - 数组循环删除错误实现与解决方案
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 20个稀奇古怪的JS表达式,猜猜输出结果吧!• JavaScript日期对象Date(总结分享)• 聊聊怎么使用Node.js创建一个简单的HTTP服务器• JavaScript创建多个对象方法总结• 聊聊node+multiparty怎么实现文件上传
    1/1

    PHP中文网