vue局部组件怎么通过props传值 vue组件中props有什么作用
vue局部组件怎么通过props传值
子组件在props中定义数据,然后父组件传数据过去,例如:
子组件:
props: {
show: {
default: false
}
}
父组件:
parentShow是父组件定义的data数据
vue组件中props有什么作用
1. 在组件内的data对象中创建一个props属性的副本
因为result不可写,所以需要在data中创建一个副本myResult变量,初始值为props属性result的值,同时在组件内所有需要调用props的地方调用这个data对象myResult。
Vue.component("switchbtn", {
template: "{{myResult?开:关}}
",
props: ["result"],
data: function () {
return {
myResult: this.result//data中新增字段
}
},
......
})
2. 创建针对props属性的watch来同步组件外对props的修改
此时在组件外(父组件)修改了组件的props,会同步到组件内对应的props上,但是不会同步到你刚刚在data对象中创建的那个副本上,所以需要再创建一个针对props属性result的watch(监听),当props修改后对应data中的副本myResult也要同步数据。
Vue.component("switchbtn", {
template: "{{myResult?开:关}}
",
props: ["result"],
data: function () {
return {
myResult: this.result
}
},
watch: {
result(val) {
this.myResult = val//新增result的watch,监听变更并同步到myResult上
}
},
vue.js怎么获取props的值
组件内部声明属性名、类型和默认值等,上层组件传递属性值之后,组件内部直接使用
this.propName 
就跟data获取一样,但是你确保在你获取的时候,props已经传递到了组件
vue兄弟间传值
官方文档有注明“mounted 不会承诺所有的子组件也都一起被挂载。”
有可能是你这个组件mounted的时候另一个组建还没挂载,你可以试下在mounted里面$nextTick 后执行, 如果是在父组件里肯定可行,不知道对子组件是否一样