18910140161

关于夸组件传参改变数据状态

顺晟科技

2022-09-03 12:42:59

230

请问一下,大佬们,如果在组件嵌套2层或者2层以上,如A => B => C =>D如果我要在C组件去触发A组件的方法,改变A组件的某个状态,是用EventBus好呢,还是用VUEX集中处理数据好呢?或者说,大佬们还有什么更好的解决思路嘛?望告知,谢谢


顺晟科技:

3.另外 provide 和 inject 了4.eventbus

核心还是看你实际需求。

当然,也可以用pinia。

可以用属性传入,也可以用private、 inject注入。

参考https://vuejs.org/guide/scaling-up/state-management.html#simple-state-management-with-reactivity-api下面是一个例子

如果是vue2的话,那么建议用vuex。如果是vue3的话,可以用reactive,直接对下去就行。

非常感谢你的建议!我去试试!

https://sfc.vuejs.org/#eyJBcHAudnVlIjoiPHNjcmlwdCBzZXR1cD5cbmltcG9ydCBDb21wIGZyb20gJy4vQ29tcC52dWUnO1xuaW1wb3J0IHsgY291bnQgfSBmcm9tICcuL3VzZVN0YXRlLmpzJztcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxoMT5BcHA6e3sgY291bnQgfX08L2gxPlxuICA8Q29tcD48L0NvbXA+XG48L3RlbXBsYXRlPiIsImltcG9ydC1tYXAuanNvbiI6IntcbiAgXCJpbXBvcnRzXCI6IHtcbiAgICBcInZ1ZVwiOiBcImh0dHBzOi8vc2ZjLnZ1ZWpzLm9yZy92dWUucnVudGltZS5lc20tYnJvd3Nlci5qc1wiXG4gIH1cbn0iLCJDb21wLnZ1ZSI6IjxzY3JpcHQgc2V0dXA+XG5pbXBvcnQgeyBjb3VudCB9IGZyb20gJy4vdXNlU3RhdGUuanMnXG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8aDE+Q29tcDp7eyBjb3VudCB9fTwvaDE+XG4gIDxpbnB1dCB2LW1vZGVsPVwiY291bnRcIj5cbjwvdGVtcGxhdGU+IiwidXNlU3RhdGUuanMiOiJpbXBvcnQgeyByZWYgfSBmcm9tICd2dWUnO1xuXG5jb25zdCBjb3VudCA9IHJlZigwKTtcblxuZXhwb3J0IHtcblx0Y291bnQsXG59In0=

1.当你都在犹豫的时候不建议使用vuex2. 如果ABCD 这个组件嵌套结构是个稳定的, 类似 form ->item 这种,组件相互之间有明显独立的标识,且触发的事件可以有限枚举,那么可以考虑 使用循环递归,向下向上广播,【具体可以参考 element的 from 实现】

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航