一步步教你开发微信小程序自定义组件

什么是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添加外部样式。

全局样式的设置

  设置addGlobalClasstrue时,组件定义的CSS将无效,只有外部的class会生效。

  通过以上步骤,你可以更好地理解和使用WXS以及自定义组件,提升小程序的效率和代码质量

© 版权声明
THE END
分享