网站优化

营销型微信小程序_vue子传父关于.sync与$emit的完成

作者:admin 发布时间:2021-01-06
vue子传父关于.sync与$emit的实现       这篇文章主要介绍了vue子传父关于.sync与$emit的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

$emit(update: prop, "newPropVulue") 这个模式,使子组件向父组件传达:更新属性,并抛出新的属性值
.sync 修饰符 是父组件中修改prop值得修饰符

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

当子传父,父级有两数据,而没有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 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持凡科。



收缩