前端 JS 经典:单向数据流

前言:Vue 的父子组件通信就遵循单向数据流的原则,父组件传给子组件的参数,子组件只能使用,不能修改。

1. 核心概念

数据的拥有者才能修改数据。因为当数据出了问题后只需要去找数据的拥有者就可以了。如果在其他地方也修改这个数据,将来这个数据出了问题,我们要到处去找,不便于维护。

当需要在子组件中修改父组件中的数据时,不能直接修改,我们需要触发父组件的事件,让父组件去修改数据。保持数据单向原则。

2. 父子组件通信

在 Vue 中,父组件通过 props 向子组件传递数据,子组件通过 $emit 触发事件并向父组件通信

3. 祖先组件通信

在 Vue 中,祖先组件和子孙组件通信时,可以通过 provide/inject 进行通信。

父组件中通过 provide 来提供变量,然后在子组件中通过 inject 来注入变量,不论子组件嵌套有多深,只要调用了 inject 就可以注入 provide 中的数据

4. 兄弟组件通信

在 Vue 中,创建一个全局的 Vue 实例来充当事件总线,所有组件都可以监听和触发事件。或者使用状态管理工具 Vuex、Pinia 等。

相关推荐
kovli1 分钟前
红宝书第六讲:作用域链与闭包:厨房里的调味料架原理
前端·javascript
Mike_jia2 分钟前
一篇文章带你了解一款强大的Kubernetes管理平台---KubeSphere
前端
Mike_jia3 分钟前
一篇文章带你了解一款强大的开源交互审计系统---Next Terminal
前端
独立开阀者_FwtCoder4 分钟前
AI 组件库 ChatUI 3.0 正式发布!阿里再一次领先!
前端·javascript·前端框架
刘同学有点忙6 分钟前
TypeScript中如何优雅处理ant-design-vue的a-select的默认空值
vue.js·typescript
不做王多余9 分钟前
多个if判断的代码如何优化
前端·javascript
最新资讯动态9 分钟前
云启鸿蒙,游创未来|华为游戏中心助力游戏产业智能化跃迁
前端
一颗奇趣蛋10 分钟前
前端项目vscode最优配置(vue3+ts)
前端·vue.js
用户33931307053910 分钟前
IntersectionObserver DOM是否交叉
前端
用户33931307053910 分钟前
this, caller, callee的区别和用法
前端