一、子组件访问父组件的数据vue init webpack-simple template
cd template
npm i
npm run dev
方式一 :子组件直接访问父组件的数据
父组件在调用子组件时,绑定想要获取的父组件中的数据
在子组件内部,使用 props 选项声明获取的数据,即接收来自父组件中的数据
创建如下目录
App.vue 中写入
我是 App 父组件
访问自己的数据:{{msg}},{{name}},{{user.id}}
Hello.vue 文件中写入
我是 hello 子组件
访问父组件中的数据: {{message}},{{name}},{{user.id}}
最后效果:
成功访问到父组件的数据
方式二 :为组件的 prop 指定 验证 规则,如果传入的数据不符合要求,Vue 会发出警告
父组件在调用子组件时,绑定想要获取的父组件中的数据
在 props 内以对象的形式写入校验规则
App.vue 中写入
我是 App 父组件
访问自己的数据:{{msg}},{{name}},{{user.id}}
Hello.vue 中写入
我是 hello 子组件
访问父组件中的数据:
{{message}}
{{name}}
{{user.id}}
{{user.userName}}
{{age}}
{{ageOne}}
{{money}}
效果如下
二、父组件访问子组件的数据注意:Prop 是单向绑定的:当父组件的属性变化时,将传导给子组件,但是反过来不会。这是为了防止子组件无意间修改了父组件的状态,来避免应用的数据流变得难以理解。
另外,每次父组件更新时,子组件的所有 prop 都会更新为最新值。这意味着你不应该在子组件内部改变 prop。
在子组件中使用 $emit(事件名,数据) 触发一个自定义事件发送数据
在父组件在使用子组件的标签内监听子组件的触发事件,并在父组件中定义方法用来获取数据
在 Hello.vue 中写入
我是 hello 子组件
访问自己的数据:
{{msg}}
{{name}}
在 App.vue 中写入
我是 App 父组件
访问子组件的数据:{{msg}},{{name}}
效果图:



