1、父子组件交互
<body> <div id="app"> <!--子组件接收到”change"方法,绑定父组件的方法--> <number @change="countAdd"></number> <number @change="countAdd">></number> <div>父组件:<sapn>{{count}}</sapn></div> </div> <script src="../js/vue.js"></script> <script> Vue.component('number',{ template:'<div>子组件:<span @click="add">{{count}}</span>\</div>', data:function () { return{ count:0 } }, methods:{ add:function () { this.count++ //向外触发一个事件,是“change"事件 this.$emit('change') } } }) new Vue({ el:'#app', data:{ //父组件使用的count count:0 }, methods: { countAdd:function () { this.count++ } } }) </script> </body>
2、子组件像父组件传递值
<div id="app"> <!--子组件接收到”change"方法,绑定父组件的方法--> <number @change="countAdd"></number> <number @change="countAdd">></number> <div>父组件:<sapn>{{count}}</sapn></div> </div> <script src="../js/vue.js"></script> <script> Vue.component('number',{ template:'<div>子组件:<span @click="add">{{num}}</span>\</div>', data:function () { return{ num:0 } }, methods:{ add:function () { this.num++ //向外触发一个事件,是“change"事件 //还可传递值:this.num this.$emit('change',this.num) } } }) new Vue({ el:'#app', data:{ //父组件使用的count count:0 }, methods: { //num:接收到全局组件中this.$emit(this.num) countAdd:function (num) { //拿到返的值进行相加 this.count += num } } }) </script>
3、父组件向子组件传递值
<body> <div id="app"> <number num2="9" num3="10"></number> </div> <script src="../js/vue.js"></script> <script> Vue.component('number',{ // 父组件向子组件传递值,存在单向数据流 props:['num2','num3'], template:'<div>子组件:<span>{{num2}}--{{num3}}</span></div>', data:function () { return{ } } }) new Vue({ el:'#app', data:{ //父组件使用的count count:0 } }) </script> </body>
-
使用v-bing方法绑定引用后再进行传递
<body> <div id="app"> <number :num2="number2" num3="10"></number> </div> <script src="../js/vue.js"></script> <script> Vue.component('number',{ // 父组件向子组件传递值,存在单向数据流 props:['num2','num3'], template:'<div>子组件:<span>{{num2}}</span></div>', data:function () { return{ } } }) new Vue({ el:'#app', data:{ number2:99 } }) </script>
标签:count,function,Vue,data,num,组件,交互 From: https://www.cnblogs.com/brf-test/p/16997275.html