一、微信小程序组件和样式
1、自定义组件----组件的创建与引用
1.1 创建组件
(1)在项目根目录中,鼠标右键,创建components-----test文件夹
(2)创建的components-----test文件夹上,鼠标右键,点击“新建 Component”
(3) 键入组件的名称之后回车,自动生成组件对应的4个文件,后缀名分别为.js、.json、.wxml和.wxss
注:为保证目录结构清晰,建议不同组件,存放于单独目录之中
1.2 局部引用组件
组件只能在当前被引用的页面内使用
在页面的.json配置文件中引用组件的方式叫做局部引用。
1.3 全局引用组件
组件可以在每个小程序页面中使用
{
// 在页面的.json文件中引用组件
"usingComponents": {
"my-test1":"/components/test/test"
}
}
<!-- 在页面的wxml文件中使用组件 -->
<my-test1></my-test1>
1.4 全局引用组件
在app.json全局配置文件中引用组件的方式叫做“全局引用”。
1.5 全局引用和局部引用
根据组件的使用频率和范围,选择合适的引用方式:
(1 )组件多个页面经常被引用,建议全局引用
(2)组件特定页面被引用,建议局部引用
1.6 组件与页面的区别
(1)组件的.json文件中需要声明“component”:true属性
(2)组件的.js文件中调用的是Component()函数
(3)组件的事件处理函数需要定义到methods节点中
1.7 组件的样式隔离特性
默认情况下,自定义组件的样式只对当前组件生效,不会影响组件之外的UI结构
注:
(1)app.wxss中的全局样式对组件无效
(2)只有class选择器会有样式隔离效果,id选择器、属性选择器、标签选择器不受样式隔离的影响
1.8 修改组件的样式隔离选项
stylelsolation修改组件的样式隔离选项:(可选值)
isolation:表示启用样式隔离,在自定义组件内外,使用class指定的样式将不会相互影响
apply-shared:表示页面wxss样式将影响到自定义组件,但自定义组件wxss中指定的样式不会影响页面
shared:表示页面wxss样式将影响到自定义组件,自定义组件wxss中指定的样式也会影响页面和其他设置了apply-shared或shared的自定义组件
二、微信小程序数据、方法、属性和数据
1、data数据
在小程序组件中,用于组价模板渲染的私有数据,需要定义到data节点中:
Component({
/**
* 组件的初始数据
*/
data: {
count:0
}
2、methods方法
事件处理函数和自定义方法需要定义到methhods节点中
3、properties属性
properties是组建的对外属性,用来接收外界传递到组件中的数据
properties: {
// 第一种方式:简化的方式 无法指定默认值
//max:Number;
//第二种方式:完整的定义方式
max: {
type:Number,
value:10
}
}
三、分包
概念:把完整小程序项目按照需求划分为不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载
优点:(1)优化小程序首次启动的下载时间;(2)在多团队共同开发时可以更好的解耦协作
1、分包前后项目的构成
分包前:所有的页面和资源都被打包到一起,导致整个项目体积过大,影响小程序首次启动的下载时间
分包后:1个主包+多个分包
主包:只包含项目的启动页面或TabBar页面、以及所有分包都需要用到的一些公共资源
分包:只包含和当前分包有关的页面和私有资源
2、分包的加载规则
(1)在小程序启动时,默认会下载主包并启动主包内页面
tabBar页面需要放到主包
(2)当用户进入分包内某个页面时,客户端会把对应分包下载下来,下载完成后再进行展示
非tabBar页面可以按照功能的不同,划分为不同的分包之后,按需下载
3、分包的体积限制
(1)整个小程序所有分包的大小不超过16M(主包+所有分包)
(2)单个分包/主包大小不能超过2M
4、配置分包
4.1 配置方法
pages------主包对应页面
package-----分包对应的文件
在app.json的subpackages节点中声明分包的结构
5、使用分包---设置分包的别名并查看分包的体积
name:' 别名'
查看分包体积:详情---基本信息---本地代码
6、打包原则
(1)按sunbpackages的配置进行分包,subpackage之外的目录将被打包到主包中
(2)主包也可以有自己的pages(即最外层的pages)
(3) tabBar页面必须在主包内
(4)分包之间不能互相嵌套
7、分包引用原则
(1)主包无法引用分包内的私有资源
(2)分包之间不能相互引用私有资源
(3)分包可以引用主包内的公共资源
8、独立分包
本质上也是分包,可以独立于主包和其他分包而单独运行
9、独立分包的引用原则
独立分包和普通分包以及主包之间,是相互隔绝的,不能相互引用彼此的资源,例如:
(1)主包无法引用独立分包内的私有资源
(2)独立分包之间,不能相互引用私有资源
(3)独立分包和普通分包之间,不能相互引用私有资源
(4)注:独立分包中不能引用主包内的公共资源
10、分包预下载
在进入小程序的某个页面时,由框架自动预下载可能需要的分包,从而提升进入后续分包页面时的启动速度
配置分包预下载:
preloadRule节点
分包预下载的限制:
同一个分包中的页面享有共同的预下载大小限额2M