vue 的sync用法
2024-10-07 10:21:42
这个关键字在v2.3.0+ 新增,注意带有 .sync
修饰符的 v-bind
不能和表达式一起使用 (例如 v-bind:title.sync=”doc.title + ‘!’”
是无效的)。说白了他就是子组件改变父组件DATA的一种方法,但是个人觉得要慎用吧,不然有容易污染组件数据的隐患,
可以运行一下示例代码,参考vue dev tool ,就会明白
father.vue:
<template>
<div class="hello"> //input实时改变wrd的值, 并且会实时改变box里的内容
<input type="text" v-model="wrd">
<hr>
这是name---{{sname}}
<!-- 不写sync不更新父组件数据,变成了单向的父组件传值给子组件的写法 -->
<box :word.sync="wrd" :sname.sync="sname" ></box>
</div>
</template> <script>
import box from './child.vue' //引入box子组件
export default {
name: 'HelloWorld',
data() {
return {
wrd: '',
sname:'zs',
age:12
}
},
components: {
box
}
}
</script>
child.vue
<template>
<div class="hello">
<div class="ipt">
<hr>
---------------------------------------------
<br>
<input type="text" v-model="str">
</div> //word是父元素传过来的
<br>
<h2>{{ word }}</h2>
<br>
//sname也是
<br>
<h2>{{ sname }}</h2>
</div>
</template> <script>
export default {
name: 'box',
data() {
return {
str: '',
}
},
props: {
word: {
type:String,
default:''
},
sname:{
type:String,
default:'ls'
}
},
watch: {
str: function(newValue, oldValue) {
//每当str的值改变则发送事件update:sname , 并且把值传过去,这时会修改父组件的data值
this.$emit('update:sname', newValue);
//如果多个值又不想用object,可以多次emit
this.$emit('update:word', newValue+'1');
}
}
}
</script>
最新文章
- (转)Ehcache 整合Spring 使用页面、对象缓存
- ubuntu设置开机启动图形应用程序,替换默认图形桌面
- MySQL表名、列名区分大小写详解
- 详解Android Handler的使用-别说你不懂handler
- cocos2d-x3.1.1 step by step 学习笔记1----- 软件的安装与HelloWord
- android学习日记15--WebView(网络视图)
- Swift - 19 - 字典的初始化
- 利用js得到某个范围内的整数随机数
- 关于Apacheserver的訪问控制
- 全局光照:光线追踪、路径追踪与GI技术进化编年史
- MySQL数据库使某个不是主键的字段唯一
- 如何使用 OpenCV 打开摄像头获取图像数据?
- 1013团队Beta冲刺day7
- (九十七)集成JPush实现远程通知和推送的发送
- .net core 灵活读取配置文件
- js之作用域链到闭包
- django如何查看mysql已有数据库中已有表格
- 快速傅里叶变换(FFT)_转载
- Device Tree常用方法解析【转】
- HandlerSocket介绍
热门文章
- FTP连接不上的解决方法
- luogu P5331 [SNOI2019]通信
- 华为云搭建windows+wordpress+xampp
- vue elementui 切换语言
- 关于<;input type=";hidden";/>;标签的记录
- PAT Advanced 1007 Maximum Subsequence Sum (25 分)
- ascii 八进制
- &#39;No application found. Either work inside a view function or push&#39;
- Github使用进阶
- pyqt5-橡皮筋控件QRubberBand