默认情况下,一个组件的wxml中只能有一族搏个slot。需要使用多slot时,可以在组件谈雀js中声明启用
需要使用多slot时,可含穗早以在组件js中声明启用
具名插槽
此时,可以在这个组件的wxml中使用多个slot,以不同的 name 来区分。
解释 :
在组件的视图模板中可以通过 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 文件中编写,并且只对当前组件内节点生效。使用时,需要注意以下几点:
我们单位实行的大小周工作制,即大周休息2天,小周消息一天。因这点小特殊,总有同事常记错周六这天是否上班。也因这点,在程序上需要特别体现出大小周的提示,于是需要设计一个日历组件,并在日历上标注出排班名称和大小周。最终闷陪实现图如下:微信小程序demo提供了一个简单的日历组件,vant也提供了一个日历组件,在github上也有一些日历组件,我试用了一番,都多少存在一些不符合之处。重点说一下vant,它有几个问题:一是加载数据太大,一运行就加载至少一年以上的数据;二是行罩渣样式不好控制,大小相档悄修改一下就会变形;三是在日期上下方加文字不方便。
因为没有找到太好的组件可以引用,就自己想设计一个能方便控制的,遂有下面的设计,
1、采用grid组件显示日期,分三行,中间一行为日期具体天的数字,上面一行显示大小周提示、下面一行显示排班名称
2、采用scroll-view动态包含grid数目
3、一行显示几天,可以动态设置
1、日历头部
2、日历内容
3、日历结构体
4、具体每个月的日历算法
获取某个月的第一天和最后一天,再获取每天的星期数,循环放到grid结构体中
优点:一是加载数据量少,可控制;二是显示内容丰富,可以控制;三是也是显示可以使用slot,更加丰富
缺点:一不是专业日历组件,样式简单了些;二是加载数据量有限,grid自身也是一个组件,加载多了额外的开销肯定大起来。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)