课程章节介绍
同学们,咱们今天聊一个很重要的概念,叫单向数据流。这是 Lightning Web Components 框架里一个核心的设计原则,就像盖房子的地基一样,理解了它,写代码才能更稳当。
简单说,单向数据流就是——数据应该,永远从父组件流向子组件,,不能反过来。打个比方,就像瀑布,水只能从上往下流,不可能往回流。父组件拥有数据,它可以把数据传给子组件,但子组件不能直接去改父组件的数据。
那子组件怎么接收数据呢?通过被 ,@api, 装饰的属性。比如父组件把某个值传给子组件,子组件用 @api 声明一个公开属性来接收。但注意,这个属性只能在初始化的时候由父组件设置一次。之后呢,只有拥有这个数据的父组件才有权修改它。
那如果子组件需要改变这个数据怎么办?比如用户在子组件里做了个操作,需要更新父组件的某个状态。这时候不能直接赋值,而是要派发一个事件上去,通知父组件:“嘿,我要改数据了。” 父组件收到事件后,自己动手去改自己的数据。数据一变,因为单向绑定,这个新值又会自动流向子组件,页面就更新了。
为什么搞这么麻烦?直接让子组件改父组件的数据不是更省事吗?其实,这是为了避免代码复杂和意想不到的副作用。如果是双向绑定,子组件改了数据,父组件可能完全没察觉,状态悄悄变了,bug 就难找了。而单向数据流让数据的变动路径清清楚楚,谁拥有数据谁负责改,其他组件只是用和通知。这样代码更容易理解、调试和维护。
所以记住三点:第一,数据只从父流向子;第二,子组件通过 @api 接收数据,但自己不直接改;第三,要改数据,就向父组件发事件。牢牢把握这个原则,你的组件通信就会清晰又安全。
好了,单向数据流就讲到这儿,有什么问题可以随时问。
关键词
LWC
Lightning Web Components
Salesforce