小程序 slot插槽

小程序 slot插槽,第1张

组件的wxml中可以包含 slot 节点,用于承载组件使用者提供的wxml结构。

默认情况下,一个组件的wxml中只能有一个slot。需要使用多slot时,可以在组件js中声明启用

需要使用多slot时,可以在组件js中声明启用

具名插槽

此时,可以在这个组件的wxml中使用多个slot,以不同的 name 来区分。

微信小程序的组件和Vue的组件非常相似。

在微信小程序中有很多内置组件,比如button view input image等,有时候我们要自定义组件。和Vue的组件似的。

如何创建自定义组件:

新建一个components目录,在里边创建自定义组件

组件的组成:

使用组件:

一个简单的示例:

创建comp,代表页面;创建components/xxxx,代表组件。

创建组件:

使用组件:

注意:json文件中不能写注释啥的。这里的注释是为了解释清楚,在开发中不能写注释。

组件的注意事项:

组件的样式细节:

如何控制页面和组件的样式相互影响:

组件和页面相互通信

this.triggerEvent(事件名,参数对象,{}),最后是options,额外的一些选项

预留一个设备,以有利于对以后进行扩展。

好处:

例子:

在移动端,导航栏,nav-bar,分为左中右三部分。不把这三部分的内容写死。就用插槽,为了封装性更好。

单个插槽的使用很简单:

多个插槽的使用稍微复杂,要设置几个东西:

component构造器中可以写哪些东西,如下

解释

在组件的视图模板中可以通过 slot 声明一个插槽的位置,其位置的内容可以由外层组件或者页面定义。

示例:

通过 name 属性可以给 slot 命名。一个视图模板的声明可以包含一个默认 slot 和多个命名 slot。外层组件或页面的元素通过 slot=”name” 的属性声明,可以指定自身的插入点。

示例:

slot指令应用

解释:

在 slot 声明时应用 if 或 for 指令,可以让插槽根据组件数据动态化。

示例:

数据环境

解释:

插入 slot 部分的内容,其数据环境为声明时的环境(也就是调用该组件页的环境)

渲染结果

scoped 插槽

解释:

如果 slot 声明中包含 s-bind 或 1 个以上 var- 数据前缀声明,该 slot 为 scoped slot。scoped slot 具有独立的 数据环境。

scoped slot 通常用于组件的视图部分期望由 外部传入视图结构,渲染过程使用组件内部数据。( 个人理解:有了scope就优先使用组件内部的数据,除非内部没有这个数据,才会使用外部传入的数据。 )

渲染结果:

组件样式

组件的样式,可以在组件的 css 文件中编写,并且只对当前组件内节点生效。使用时,需要注意以下几点:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11472147.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存