zoukankan      html  css  js  c++  java
  • vue入门学习篇——父子组件通信

    Vue父子组件之间通信的原理

      父组件:props down —— 父组件通过props向下传递数据给子组件

      子组件:events up —— 子组件通过事件events向上传递数据给父组件

    下面我们来看一下具体的实现效果:

    父组件 ==》子组件

    1、首先在父组件上通过v-bind设置属性传值例如key、item、index

    <div id="root">
        <input v-model="inputValue" />
        <button @click="butClick">submit</button>
        <ul>
         //在父组件定义属性传值 <list-item v-for="(item,index) of list" :key="index" :item="item" :index="index" @delete="liDelete"//父组件自定义事件delect ></list-item> </ul> </div>

    2、然后子组件通过props接收属性,属性值可以在子组件中任意使用

    //这里定义一个全局组件,就不单独写一个.vue文件了
    Vue.component('list-item',{
       //子组件通过props接收 props:[
    'item','index'], template:'<li>{{item}} <button @click="liClick">删除</button></li>', methods:{ liClick:function(){ this.$emit('delete',this.index)//子组件通过$emit触发delete事件,把当前的index传给父组件 } } })

    子组件 ==》父组件

    1、父组件自定义一个事件方法,即delete

    2、子组件通过$emit触发delete事件,把当前的index传给父组件

    new Vue({
        //绑定元素
        el:'#root',
        //数据
        data:{
            inputValue:'',
            list:[]
        },
        methods:{
            butClick:function(){
                if(this.inputValue !==''){
                    this.list.push(this.inputValue)
                }
                this.inputValue = '';
            },
            liDelete:function(index){
                this.list.splice(index,1)
            }
        }
    })

    实现效果:

  • 相关阅读:
    如何备份Chrome浏览器收藏夹
    Postman初接触
    Fitness初接触
    selenium向IE的输入框中输入字符时特别慢
    Test Case Design Method
    decision table
    Pair Testing
    selenium python 报错“ unable to find binary in default location”
    Eclipse+Pydev环境下出现error “eclipse Non-UTF-8 code”
    Eclipse + pydev插件
  • 原文地址:https://www.cnblogs.com/hess/p/10877185.html
Copyright © 2011-2022 走看看