站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        vue中讓子組件修改父組件數(shù)據(jù)的方法

        vue中讓子組件修改父組件數(shù)據(jù)的方法

        一、關(guān)于vue中watch的認識

        我們要監(jiān)聽一個屬性的的變化就使用watch一般是父組件傳遞給子組件的時候

        ?1、常見的使用場景

        ... watch:{   value(val) {     console.log(val);     this.visible = val;   } } ...

        相關(guān)學(xué)習(xí)推薦:javascript視頻教程

        ?2、如果要一開始就執(zhí)行

        ... watch: {   firstName: {     handler(newName, oldName) {       this.fullName = newName + '-' + this.lastName;     },     immediate: true,   } } ...

        ?3、深度監(jiān)聽(數(shù)組、對象)

        ... watch: {   obj: {     handler(newName, oldName) {     console.log('///')   },   immediate: true,   deep: true, } ...

        二、關(guān)于子組件修改父組件屬性認識

        在vue2.0+ 后不再是雙向綁定,如果要進行雙向綁定需要特殊處理。

        [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "你修改的屬性名"

        ?1、通過事件發(fā)送給父組件來修改

        **在子組件test1中** <input type="text" v-model="book"/> <button @click="add">添加</button> <p v-for="(item, index) of books" :key="index">{{item}}</p> ... methods: {   add() {     // 直接把數(shù)據(jù)發(fā)送給父組件     this.$emit('update', this.book);     this.book = '';   }, }, **在父組件中** <test1 :books="books" @update="addBook"></test1> ... addBook(val) {   this.books = new Array(val) },

        ?2、使用.sync 來讓子組件修改父組件的值(其實是上面方法的精簡版)

        **在父組件中,直接在需要傳遞的屬性后面加上.sync** <test4 :word.sync="word"/> **在子組件中** <template>   <p>     <h3>{{word}}</h3>     <input type="text" v-model="str" />   </p> </template> <script> export default {   props: {     word: {       type: String,       default: '',     },   },   data() {     return {       str: '',     }   },   watch: {     str(newVal, oldVal) {       // 在監(jiān)聽你使用update事件來更新word,而在父組件不需要調(diào)用該函數(shù)       this.$emit('update:word', newVal);     }   } } </script>

        ?3、在子組件中拷貝一份副本

        **子組件中** export default {   props: {     // 已經(jīng)選中的     checkModalGroup: {       type: Array,       default: [],       required: false,     }   },   data() {     return{       copyCheckModalGroup: this.checkModalGroup, // 選中的     }   },   methods: {     // 一個一個的選擇     checkAllGroupChange(data) {       // 把當(dāng)前的發(fā)送給父組件       this.$emit('updata', data);     },   },   watch: {     checkModalGroup(newVal, oldVal) {       this.copyCheckModalGroup = newVal;     }   } } **父組件中直接更新傳遞給子組件的數(shù)據(jù)就可以** ... // 更新子組件數(shù)據(jù) roleCheckUpdata(data) {   this.roleGroup = data; }, ...

        相關(guān)學(xué)習(xí)推薦:編程視頻

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 亚洲精品乱码久久久久66| 九九精品99久久久香蕉| 精品无码人妻一区二区三区品 | 四虎成人精品无码| 国产手机在线精品| 免费欧美精品a在线| 国产精品涩涩涩视频网站| 亚洲人成精品久久久久| 热RE99久久精品国产66热| 国产精品自产拍高潮在线观看| 国产成人精品日本亚洲专| 国产精品亚洲欧美大片在线看| 久久精品国产亚洲Aⅴ蜜臀色欲| 午夜精品在线观看| 99久久精品费精品国产一区二区 | 国产成人毛片亚洲精品| 精品国产污污免费网站| 成人国产精品高清在线观看| 久久精品毛片免费观看| 亚洲高清国产拍精品26U| 亚洲无码日韩精品第一页| 亚洲精品乱码久久久久久蜜桃| 久久国产香蕉一区精品 | 国内少妇偷人精品视频免费| 无码aⅴ精品一区二区三区浪潮| 亚洲色精品88色婷婷七月丁香| 中日精品无码一本二本三本| 亚洲国产精品无码专区影院| 在线精品动漫一区二区无广告| 亚洲精品国产精品国自产观看| 亚洲精品乱码久久久久久蜜桃| 中文字幕精品一区二区精品| 亚洲日韩精品无码专区网址| 亚洲AV无码成人精品区蜜桃| 久久香蕉超碰97国产精品| 精品久久无码中文字幕| 国产精品福利在线播放| 99久久免费只有精品国产| 99久久99久久精品国产| 国内精品欧美久久精品| 亚洲国产精品不卡毛片a在线|