sync修飾符
阿新 • • 發佈:2019-01-10
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <divid="app"> <!-- <child :msg="msg" @update:msg="getMsg"></child> --> <child :msg.sync="msg"></child> <!-- <child :msg="msg" @update:msg="msg=$event"></child> --> <!-- <button @click="$event"></button> --> <!-- <el-dialog :visible.sync="dialogVisible" ></el-dialog>--> <!-- <el-dialog :visible="dialogVisible" @update:visible="dialogVisible = $event"></el-dialog> --> </div> <script src="../vue.js"></script> <script> /* v-bind的修飾符 .sync 同步 父元件往子元件中傳遞資料,子元件的操作也可以修改這個資料,同時子元件僅操作該資料時 元件上的自定義事件函式中的$event是觸發該自定義事件時的第二個引數(子元件傳遞過來的資料) <元件標籤 :子元件prop.sync="父元件data"></元件標籤> <元件標籤 :子元件prop="父元件data" @update:子元件prop="父元件data = $event"></元件標籤> 那麼子元件中一定有this.$emit('update:prop名字', '資料') 這個資料就是未來的$event*/ const child = { template: ` <div> {{msg}} <button @click="changeMsg">按鈕</button> </div> `, props: { msg: String }, methods: { changeMsg () { this.$emit('update:msg', '子元件中修改後的msg') } } } const app = new Vue({ el: "#app", components: { child }, data: { msg: '父元件中的資料' }, methods: { getMsg (msg) { // console.log(e) this.msg = msg } } }) </script> </body> </html>