国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Vue 組件修改根實例的數據的方法

2019-11-19 11:54:33
字體:
來源:轉載
供稿:網友

思路:

1 在組件內部監聽事件并把事件 emit

2 在組件上監聽 emit 出來的事件

3 當事件發生時執行對應的函數去修改根實例上的 data

實現:

1 在組件內部的 input框 中監聽 input事件,并給 input事件 綁定triggerInput函數

2 當往 input框 中輸入內容時,觸發 triggerInput 函數

triggerInput函數 向外部 emit 一個 edit事件 和 輸入框的值

3 在組件上監聽這個 edit事件 并給 edit事件 綁定 triggerEdit函數

4 此時會觸發 triggerEdit函數,triggerEdit函數 就能去修改根實例上的 data

注意:

1 triggerEdit函數 的第一個參數為你想要修改的根實例 data 的 key

2 第二個參數 $event 是套路,有這個參數才能在 triggerEdit函數 中獲取組件內部 emit 出來的 input框的值

3 可以在 triggerEdit函數中 log 出組件內部發生的 event

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app">  根實例的 data message:{{message}}  <br>  根實例的 data name:{{name}}  <br>  message:  <component-demo1  v-on:edit="triggerEdit('message', $event)"  ></component-demo1>  name:  <component-demo1  v-on:edit="triggerEdit('name', $event)"  ></component-demo1> </div> </body> <script> Vue.component('component-demo1', {  template: `  <div>   組件內的 input:   <input   v-on:input='triggerInput'   >  </div>  `,  methods: {  triggerInput: function (e) {   this.$emit('edit', e.target.value)  },  }, }) var app = new Vue({  el: '#app',  data: {  message: 'hello vue',  name: 'gua',  },  methods: {  triggerEdit: function (key, value) {   this[key] = value  }  } }) </script></html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 会东县| 江孜县| 原阳县| 大洼县| 桦川县| 桃江县| 高州市| 汝南县| 达州市| 吉林省| 黔东| 山丹县| 长子县| 特克斯县| 武隆县| 库尔勒市| 吴江市| 乌苏市| 梧州市| 丰城市| 澎湖县| 安岳县| 辽宁省| 宁远县| 江城| 旬阳县| 泗阳县| 汤阴县| 敦化市| 云阳县| 高密市| 神农架林区| 辽源市| 怀安县| 冀州市| 吐鲁番市| 宜兴市| 保山市| 宣汉县| 申扎县| 沙湾县|