不见月

Results 37 comments of 不见月

> > In my opinion, this may be the creation flow function of a component. If you don't want to maintain a global state yourself, `Vue.minxin` may be able to...

如果你不想每个组件都绑一个 key ,并且你的组件都拥有同一个父级的话,根据你的描述,用[指令](https://v2.vuejs.org/v2/guide/custom-directive.html#ad)就能完成你的需求了

我认为数据的流向在这种情况下是没有问题的,即使你不通过 `props` 来传输,你也会想办法用 `provide` 或者全局状态来调控, 但是我认为最重要的是尽可能的减少组件中关于 “重置数据” 这段逻辑的引用,因为它不再跟 “组件是用来提供数据” 这个逻辑相关 这是一个来自父组件(或者是数据接受者自己的逻辑),指令或者组件的声明周期钩子回调都可以很好的完成这个任务

> > 如果你不想每个组件都绑一个 key ,并且你的组件都拥有同一个父级的话,根据你的描述,用[指令](https://v2.vuejs.org/v2/guide/custom-directive.html#ad)就能完成你的需求了 > > 指令执行顺序是 下一个组件created => 当前组件beforeDestroy => 当前组件指令unbind,还是滞后执行unbind,不太明白指令怎么实现。如果说是它来做自动收集数据的话,不太明白咋做到QAQ 只需要在 `unbind` 或者 `onHook:destroyed` 的时候重置数据就可以了

> > 我认为数据的流向在这种情况下是没有问题的,即使你不通过 `props` 来传输,你也会想办法用 `provide` 或者全局状态来调控, 但是我认为最重要的是尽可能的减少组件中关于 “重置数据” 这段逻辑的引用,因为它不再跟 “组件是用来提供数据” 这个逻辑相关 > > 这是一个来自父组件(或者是数据接受者自己的逻辑),指令或者组件的声明周期钩子回调都可以很好的完成这个任务 > > 我理解你的意思是让下一个替换进来的组件自己初始化的时候来重置数据吧。这相当于让B组件来清理A组件产生的副作用了,我当时没办法了也是这样想过,可是组件创建的逻辑可能是表单初始化,也可能是联动出现。我无法判断传入的数据是服务器传过来反显的数据还是另一个组件的副作用产生的数据,很难处理 简单啊,打个脏数据的标志就行了,如果服务器的数据设置了这个值你就设置标志为 `true`,然后再每次数据变动的时候把这个标志清掉

你可以先把这个 issuse 转到讨论里面去,因为这跟 Vue 的底层实现无关了

我的建议还是你最好给每个组件一个 `key`,这样至少组件之间的数据是互不冲突的,我能不能理解为服务器传过来的是 `initialValue`,然后每个组件创建时都将接收这个数据作为初始,也就是你说的 `{}` 如果是的话那业务就很好写了,你用这个 `key` 去一个大对象里面拿这个组件自己维护的数据,如果这个拿到的数据是 `undefined`,那么你就将服务器的数据抛出去进去,当组件卸载时只需要将自己的数据清除即可

> a workaround > > ```js > > // add a key > Provided Content > > > ``` This method can temporarily solve this problem, but if the component...

> this is because of the slot children and the fallback children both as blocks but with empty dynamic children. > > @nooooooom > > ``` > > > //...