换个角度想
Props 像咖啡店的点单小票:同一台咖啡机,小票上写大杯、少糖、加冰,做出来的就是那一杯。机器不用改,改的只是单子。
术语 · 前端
Props
父组件传给子组件的数据,用来配置组件的内容和行为。
同一份定义,传入什么就长成什么
label待传入
variant待传入
label="加入购物车"加入购物车label="取消" ghost取消label="删除" dark删除Props 像咖啡店的点单小票:同一台咖啡机,小票上写大杯、少糖、加冰,做出来的就是那一杯。机器不用改,改的只是单子。
label
variant<Button label=… />
像给函数传参数
label加入购物车
variantsolid
<Button label="加入购物车" variant="solid" />父组件准备好数据
列表里每张卡片的标题、封面都不同,数据全来自 props。
同一个弹窗组件,传 confirm 或 alert,按钮组合就不一样。
组件显示不对时,先看父组件传进来的 props 对不对。
一个头像组件在页面 A 是圆形,页面 B 想要方形。应该复制一份组件改样式吗?
不用复制。给组件加一个 shape 属性(默认圆形),页面 B 传入方形即可——定义保持一份,差异交给 props 表达。
Props 是自上而下的单行道:子组件只读它,不该偷偷修改它。想改数据,应该通知父组件去改,否则两边就说不清谁是真相了。