【每日一题】为什么前端框架里的Props是只读的

前端印记

共 1259字,需浏览 3分钟

 ·

2021-09-13 01:29

人生苦短,总需要一点仪式感。比如学前端~

Props是只读属性,内部不能直接修改

vue / React中,Props在子孙组件中的设计都是只读属性、内部不能直接修改。要想修改 Props,只能在该组件的上层组件中进行修改。

单向数据流 Unidirectional data flow

这是因为,props 是上层组件传递进来的值,这个值是父类的值。props 的传值遵从单向数据流 (Unidirectional data flow)的设计模式,也就是数据只能从上流到下、从外流到内这样沿着一个方向传递,而不能“逆流”。即不会让内部影响外部的值,这样能使状态可预测

试想一下,如果允许子组件修改父组件的数据,那么当我们将一个父组件的状态传递给好几个子组件后,这几个子组件随意修改数据,就会导致状态完全不可预测、根本不知道在什么地方修改什么状态的混乱场景。

修改props的值

如果需要改值,只能从外部到内部这一个方向去修改值:在vue中可以用$emit自定义事件配合修改;
在React中可以向子组件传递并调用父组件的函数进行修改。

也可以在子组件内,先把 props 赋值给一个变量,再修改这个变量。


END
愿你历尽千帆,归来仍是少年。


让我们一起携手同走前端路!

关注公众号回复【加群】即可

● 工作中常见页面布局的n种实现方法

● 三栏响应式布局(左右固宽中间自适应)的5种方法

● 两栏自适应布局的n种实现方法汇总

● 工作中常见的两栏布局案例及分析

● 垂直居中布局的一百种实现方式

● 常用九宫格布局的几大方法汇总

● 为什么操作DOM会影响WEB应用的性能?

● 移动端滚动穿透的6种解决方案

● Vue + TypeScript 踩坑总结

浏览 23
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报