1. 程式人生 > >Vue父子元件的資料傳遞

Vue父子元件的資料傳遞

<!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>
    var
counter = { 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 -->