Vue将props值实时传递 并可修改的操作
我们都知道props值是只读的,子组件内不可直接修改,会报错滴
很多时候这个值是需要子组件主动修改的,一般我们会使用this.$emit()去修改,但比较麻烦
狼蚁网站SEO优化这种方式可以实现
1、父组件实时修改props值时,子组件可以接收到改变
2、子组件可主动修改该值
<div>{{RealValue}}</div> props: [ "value" ], watch: { value (v) { this.RealValue = v } }, data () { return { RealValue: this.value } }
原理很简单,就是使用一个RealValue作为实际显示的参数,并且使用watch实时把value值传给他
PS这里的值是字符串格式,如果value是对象或者数组,watch处要写成
watch: { value:{ deep: true, handler(v) { this.RealValue = v } } },
补充知识vue组件内数值做watch监听,监听不到的问题
在vue中会使用很多子组件,有时因为组件的类型等原因会导致数据监听不到的情况,狼蚁网站SEO优化列举几种问题和解决方法
子组件内数据监听不到时,可以使用【immediate】方法,其值是true或false;immediate:true代表如果在 wacth 里声明了之后,就会立即先去执行里面的handler方法
watch:{ uploadImageUrl:{ immediate:true, handler:function(newval){ this.uploadShowImageUrl = newval; } } },
子组件的深度监听函数【deep】,其值是true或false;确认是否深入监听。deep的意思就是深入观察,监听器会一层层的往下遍历,给对象的所有属性都加上这个监听器(受现代 JavaScript 的限制 (以及废弃 Object.observe),Vue 不能检测到对象属性的添加或删除)
watch:{ uploadImageUrl:{ deep:true, handler:function(newval){ this.uploadShowImageUrl = newval; } } },
给组件内的props为对象的数据设置默认值
如果prop中接收的数据为对象或者数组类型,是不可以像字符串等【default:''】直接指定default值的,会报【Invalid default value for prop “defaultProp”: Props with type Object/Array must use a factory function to return the default value.】错误,修正方法如下
defaultProp: { type: Object, default: function(){ return { children: 'children', label: 'name' } } },
以上这篇Vue将props值实时传递 并可修改的操作就是长沙网络推广分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持狼蚁SEO。
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南