Vue父子元件的資料傳遞
阿新 • • 發佈:2018-11-20
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>父子元件傳值</title> <script src="./vue.js"></script> </head> <body> <div id="root"> <!--加上冒號是讓"0","1"成為js表示式,不是字串--> <counter :count="1" @inc="handleIncrease"></counter> <counter :count="3" @inc="handleIncrease"></counter> <div>{{total}}</div> </div> <script> varcounter = { props:['count'], data: function(){ return{ number:this.count } }, template: "<div @click='handleClick'>{{number}}</div>", methods:{ handleClick:function () { this.number = this.number+2; this.$emit('inc',2) //每次點選按鈕都是向外觸發inc事件,步長為2 } } }; var vm = new Vue({ el: '#root', data:{ total:4 }, //註冊子元件 components: { counter: counter }, methods:{ handleIncrease:function (step) { this.total +=2 } } }) </script> </body> </html> <!-- 父元件向子元件傳遞資料:通過屬性的形式向子元件傳遞資料, 父元件向子元件隨意的傳遞引數,但是子元件不能隨意修改父元件傳遞過來的引數(單項資料流) 解決上述問題吧辦法一:在子元件中建立data物件,建立副本,返回自己的number資料,修改自己就可以了 子元件向父元件傳遞資料:this.$emit -->