课程章节介绍
同学们,我们今天来看一下,在Lightning Web Components里,怎么从一个父组件给子组件传一些简单的原始值。
这个过程其实非常简单。首先,在子组件里面,你要告诉外界:“我这个属性是公开的,父组件可以给我传值。”怎么做呢?你只需要在类里面,用一个叫`@api`的装饰器,来声明一个公共属性。比如,我们定义一个`itemName`字段,加上`@api`,这就意味着,父组件可以设置这个`itemName`的值了。
那么,父组件怎么传值呢?它是在自己的HTML模板里,通过子组件的标签来设置的。这里有一个命名规则要注意:在HTML模板里,属性名要用“短横线分隔”的形式,也就是kebab-case,比如`item-name`;而到了JavaScript里,它会自动映射成驼峰命名的`itemName`。所以,你在父模板里写``,子组件里的`itemName`就会收到这个字符串“Milk”。
在我们这个例子里,为了讲清楚,我直接用了一些静态值,比如“Milk”和“Bread”。但真实项目里,肯定不会这么写死,数据一般都是动态的。通常你会用到`for:each`这样的迭代指令,从一个数据集合里循环渲染出子组件,然后分别给它们传不同的值。
如果你想看更完整的案例,可以到GitHub上找lwc-recipes仓库,里面有`compositionBasics`这个组件,场景更丰富。或者你也可以直接在lwc.dev的交互式游乐场里动手试试,加深理解。
好,关于设置原始值,就是这么简单。我们下个小节再见。
关键词
LWC
Lightning Web Components
Salesforce