kenberkeley / vue-demo

Vue.js 示例项目 · 简易留言板。本项目拥有完善的文档说明与注释,让您快速上手 Vue.js 开发 SPA。Webpack / ES6 + Babel / Vue Router / (Vue Resource?) / (Vue Validator?) / (Vuex?) —— An Excellent Vue Starter with Best Practice / 最佳实践
https://kenberkeley.github.io/vue-demo/dist
Apache License 2.0
1.29k stars 410 forks source link

Vue2.0里好像已经不支持父子组件用$root通信了? #11

Closed GitKou closed 7 years ago

GitKou commented 7 years ago

1.你的navbar父子组件用的$root通信。

  1. 可是现在vue2.0的文档上找不到说可以用这$root通信了,不知道是不是不支持了?我用的2.0试你的代码不成功。
  2. 而且1.0的版本上也是说不推荐这样;

`子组件可以用 this.$parent 访问它的父组件。根实例的后代可以用 this.$root 访问它。父组件有一个数组 this.$children,包含它所有的子元素。

尽管可以访问父链上任意的实例,不过子组件应当避免直接依赖父组件的数据,尽量显式地使用 props 传递数据。另外,在子组件中修改父组件的状态是非常糟糕的做法,因为:

这让父组件与子组件紧密地耦合;

只看父组件,很难理解父组件的状态。因为它可能被任意子组件修改!理想情况下,只有组件自己能修改它的状态。`

kenberkeley commented 7 years ago

本 demo 仅供 Vue 1.x 使用 关于您的需求,建议使用 Vuex 实现

kenberkeley commented 7 years ago

连 React 都提供 context,因此 Vue 使用 $root 不见得是反范式(但使用 $parent 确实不雅,因此本 demo 没有使用)

kenberkeley commented 7 years ago

Vue2 脚手架已出!!! #26