什么是WXS?
WXS是一种类似于JS的小程序脚本语言,但它和JS有很大的不同。首先,WXS文件不依赖于运行时的库,这意味着它的运行环境是的。其次,WXS和JS是完全不同的语言,WXS不能调用JS中的函数,也不能调用小程序提供的API,更不能进行回调操作。简单来说,WXS和JS的运行时是完全隔离的。
WXS与WXML的关系
WXS类似于一门脚本语言,它通过导出的方式与WXML进行连接,类似于Node.js中的模块导出。WXML是页面显示的文件,类似于网页中的HTML文件。JSON是配置文件,用于对页面内容进行配置。而WXSS则是CSS配置文件,用于定义页面的样式。JS文件则负责处理回调以及页面数据绑定。
自定义组件的好处
使用自定义组件可以将页面的功能抽象成组件,在不同的页面中重复使用。通过将复杂的页面抽象成多个模块,可以达到高内聚、低耦合的目标。这样一来,代码的复用性和可维护性都会大大提高。
如何创建自定义组件?
一个自定义组件由四个文件组成:JSON、WXML、WXSS和JS。要编写一个自定义组件,首先需要在JSON文件中进行声明,表明这一组文件是自定义组件。
JSON文件的配置
在JSON文件中,你需要设置该文件夹为组件文件夹。需要注意的是,命名应该规范,通常建议命名为“components”。使用Component
函数进行设置时,必须确保“Component”首字母大写,否则组件将无常显示。
组件内容的设置
组件的CSS样式可以通过设置页面的JSON数据来进行引用。在引用组件时,可以设置文字内容为“some text”,如果不设置,将会使用默认值。
组件模板和样式
自定义组件拥有自己的WXML和WXSS样式,类似于页面。组件模板的写法和页面模板相同,组件模板和组件数据组合生成节点树,最终入到组件的引用位置上。
组件模板中的Slot
组件模板中提供了slot
,用于承载组件引用时的子节点。也就是说,在引用组件时,组件内部的子节点将会插入到slot
节点内部。
数据绑定与模板
使用数据绑定可以向子组件的属性动态传递数据。通过设置模板的WXML和JS文件,可以完成对组件的使用。
多Slot支持
在Component
函数中,可以通过设置options
对象的multipleSlots
属性为true
来支持多个slot
。使用name
来区分不同的slot
。
组件样式注意事项
组件的样式只对组件内部的WXML节点生效。需要注意的是,组件只能使用class
选择器,避免使用后代选择器。
:host选择器
使用:host
选择器可以设置组件的默认样式。例如,可以设置该页面的全部:host
值为yellow
。
外部样式与全局样式
普通样式和外部样式尽量避免同时使用,因为这可能会导致两个类的优先级未定义。通过设置externalClasses
,可以为组件的class
添加外部样式。
全局样式的设置
设置addGlobalClass
为true
时,组件定义的CSS将无效,只有外部的class
会生效。
通过以上步骤,你可以更好地理解和使用WXS以及自定义组件,提升小程序的效率和代码质量。