溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue子傳父關于.sync與$emit的實現(xiàn)

發(fā)布時間:2020-09-27 08:31:43 來源:腳本之家 閱讀:195 作者:不逗 欄目:web開發(fā)

$emit(update: prop, "newPropVulue") 這個模式,使子組件向父組件傳達:更新屬性,并拋出新的屬性值
.sync 修飾符 是父組件中修改prop值得修飾符

一:什么地方需要用到.sync修飾符呢

當子傳父,父級有兩數(shù)據(jù),而沒有v-modal時

例如iview的Tree組件中:

父級:

<folder-tree
 :folder-list.sync="folderList"
 :file-list.sync="fileList"
 :folder-drop="folderDrop"
 :file-drop="fileDrop"
 :beforDelete="beforeDelete"
/>
import FolderTree from '_c/folder-tree'
export default {
 components: {
  FolderTree
 },
 }

子級:

<Tree :data="folderTree" :render="renderFunc"></Tree>

子級方法中的寫法:

 let updateListName = isFolder ? 'folderList' : 'fileList'
 this.$emit(`update:${updateListName}`, list)

二:.sync與$emit的寫法問題

使用.sync修飾符,即

// this.$emit('update:folder-tree',100); //無效
this.$emit('update:folderTree',100); //有效
//......
<folder-tree v-bind:folder-tree.sync="test"></folder-tree>

與不使用.sync,即

this.$emit('update:folder-tree',100); //有效
//this.$emit('update:folderTree',100); // 無效
 
 //......
 <folderTree v-bind:father-num="test" v-on:update:folder-tree="test=$event" ></folderTree>

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI