1.wxml
1)数据绑定
- 简单绑定 {{变量名}}形式
- 组件属性绑定 eg:<view id='{{id}}'>hello</view>
- 控制属性绑定 eg:<view wx:if='{{condition}}'></view>
- 关键字绑定 在引号内写布尔值也必须用双花括号括起来 否则会被认为是字符串转换为布尔值以后表示true
- 运算绑定 花括号内可以进行简单运算,支持三元运算、算术运算、逻辑判断、字符串运算、数据路径运算
- 组合绑定 在双花括号内直接进行变量和值的组合,构成新的对象或数组
ps:也可以使用"..."符号将对象内容展开显示
<!--wxml页面代码-->
<template is="test" data="{{...student,gender:2}}"></tenplate>
//JS代码
Page({
data:{
student: {
stuID: '123',
stuName: '张三'
}
}
})
//结果:stuID:'123',stuName:'张三',gender:2
元素key和value名称相同时,可以省略表达。存在相同key名称,后者会覆盖前者内容。如下:
2)列表渲染
- 简单列表 使用wx:for绑定一个数组,用数据中的每个元素依次渲染该组件,形成批量效果
- 嵌套列表 wx:for嵌套出现,如九九乘法口诀表的例子
- 多节点列表 将wx:for用在<block>标签上以渲染一个包含多节点的结构块
- wx:key属性 如果列表中项目位置会动态改变或者有新项目添加到列表中,可能导致列表乱序,可用此属性指定列表中的项目唯一标识符。两种形式提供:
ps:当数据改变导致页面被重新渲染时会自动校正带有key的组件,以确保项目被正确排序,并且提高列表渲染时的效率
3)条件渲染
- 简单条件 wx:if="{{condition}}"判断是否需要渲染该代码块
- 多节点条件 一次性判断多个组件标签,可用<block>标签将多个组件包装起来
- wx:if与hidden 属性对比如下
ps:如果需要频繁切换组件,用hidden更好;如果运行时条件很少改变,用wx:if更好
4)模板(template)
定义代码片段,后在不同页面被重复调用
- 定义模板
<template name="myTemp">
<view>
<text>Name:{{name}}</text>
<text>Age:{{age}}</text>
</view>
</template>
- 使用模板
在新的wxml页面继续使用template标签可引用模板内容,引用的时候必须带有is属性,用来指定正确的模板名称才能成功引用,使用data属性将模板所需要的数据值引入。
<!--wxml-->
<template is="myTemp" data="{{...student}}"></template>
//JS文件代码
Page({
data:{
student:{
name:'张三',
age: 20
}
}
})
5)事件
从视图层到逻辑层的通信方式
- 事件的使用方式
在wxml页面为组件绑定一个事件处理函数,data-*为事件附加属性,想获得data-my数据值,可描述成e.currentTarget.dataset.my
- 事件的分类 分为冒泡事件(当一个组件上的事件被触发后,该事件会向父节点传递)和非冒泡事件(当一个组件上的事件被触发后,该事件不会向父节点传递)
ps:除上表之外的其他组件自定义事件,无特殊声明都是非冒泡事件
- 事件绑定和冒泡
key=value形式绑定,key:以bind或catch开头,后跟事件的类型;value:一个字符串,在对应Page中定义同名函数
bind事件和catch事件区别:bind事件绑定不会阻止冒泡事件向上冒泡,后者会
- 事件的捕获阶段
基本库版本1.5.0起,触摸类事件支持捕获阶段,可在组件的冒泡事件被触发前进行事件捕获,使其无法冒泡。捕获阶段事件顺序是由外向内,与冒泡阶段完全相反。
示例:
- 事件对象详解
事件对象分为基础事件、自定义事件、触摸事件。事件对象所包含的具体属性如表:
target和currentTarget属性的参数:
dataset属性注意点:
1.如果描述多个词用连字符连接,会被强制转换为驼峰标记法,即第一个单词全部小写,后面每个单词仅首字母大写
2.如果同一个词里有大写字母,会被强制转换为小写字母
6)引用 import和include
- import 用于引用模板<template>内容
有作用域概念,只引用目标文件自己定义的template,不会引用目标文件里面用<import>引用的第三方模板,为了避免多个页面互相连接引用陷入逻辑错误
- include
将目标文件除<template>以外的整个代码代入,相当于把目标文件的代码直接复制到<include>标签的位置
<import>适合于统一样式但内容需要动态变化的情况,<include>适合于无需改动目标文件的情况
2.wxss
1)尺寸单位 rpx 根据屏幕宽度进行自适应,无视设备原先尺寸,统一规定屏幕宽度为750rpx 常用ipone6做设计稿标准
2)样式导入 用@import "相对路径";语句导入外联样式表
3)常用属性 略
4)内联样式 style 行内样式 class 指定样式规则
5)选择器
6)全局样式与局部样式
全局样式:app.wxss
局部样式:页面wxss文件
3.组件
后面再详写