1.组件跳转
实现组件跳转需要用到navigation组件,该组件有两个常用属性
(1)url:当前小程序跳转链接
(2)open-type:跳转方式
navigate:保留当前页面,跳转到应用内某个页面,但不能跳转到tabber页面
redirect:关闭当前页面,跳转到应用内某个页面,但不能跳转到tabber页面
switchTab:跳转到tabBar页面,并关闭其他所有非tabBar页面
reLaunch:关闭所有页面,跳转到应用内某个页面
navigateBack:关闭当前页面,跳转到上一级或多级页面
#路径后可以带参数,路径和参数之间用?分隔,参数键和参数值用=号相连,不同参数用&分割
例如/list?id=10&name=hua,在onLoad生命周期函数中获取传递的参数
#open-type="switchTab"时不支持传参

在进行路径跳转时,需要在路径前加/
2.内容滚动
scroll_view:可滚动视图区域,适用于需要滚动展示内容的场景,用于在小程序中实现类似于网页中滚动条的效果,用户可以通过手指滑动或点击滚动条来滚动内容。
(1)scroll-x:允许横向滚动
(2)scroll-y:允许纵向滚动
3.背景图片
当编写小程序样式文件时,可以使用background-image来设置元素的背景图片
#小程序的background-image不支持本地路径,需网络图片或base64或<image/>组件
4.事件绑定和事件对象
小程序中绑定事件几乎与网页中绑定事件几乎一样,但在小程序中不能通过on方式绑定事件,也没有click等事件,小程序中绑定事件使用bind方法,click事件也需要tap事件进行替换,绑定事件有两种方法:
(1)bind:事件名,bind后面需要跟上冒号,冒号后面要跟上事件名
例如:<view bind:tap="fnName"></view>
(2)bind事件名,bind后面直接跟上事件名,例如:<view bindtap="fnName"></view>
事件处理函数需要写到.js文件中,在.js文件中需要小程序提供的Page方法来注册小程序的页面,
可以直接在Page方法中创建事件处理函数
5.事件分类和阻止事件冒泡
事件分为冒泡事件和非冒泡事件:
冒泡事件:当一个组件的事件触发后,该事件会向父节点传递
非冒泡事件:当一个组件的事件触发后,该事件不会向父节点传递
使用Bind绑定的事件会触发冒泡,如果不想触发事件冒泡,可以使用catch触发事件,
6.事件传参
事件传参:在触发一些事件时,将一些数据作为参数传递给事件处理函数的过程,就是事件传参
在微信小程序中,会经常在组件上添加一些自定义数据,然后在事件处理函数中获取这些自定义的数据,从而完成业务逻辑的开发
在组件上通过data-*的方式定义需要传递的数据,其中*是自定义的属性,例如:<view data-id="100" bindtap="handler"/>然后通过事件对象进行获取自定义数据
7.mark自定义数据
小程序进行传参的时候,除了data-*属性传递参数外,还可以使用mark标记传递参数
mark是一种自定义属性,可以在组件上添加,用于识别具体触发事件的target节点。同时mark还可以用于承载一些自定义数据
在组件上使用mark:自定义属性的方式将数据传递给事件处理函数,例如:<view mark:id="100" bindtap="handler"/>,然后通过事件对象进行获取自定义数据
8.声明和绑定数据
小程序页面中使用的数据均需要在Page()方法的data对象中进行声明定义
在将数据声明好只后,在WXML使用Mestance语法(双大括号{{ }})将变量包起来,从而将数据绑定
在{{ }}内部可以做一些简单的运算,支持如下几种方式
1.算数运算
2.三元运算
3.逻辑判断
4.其他。。。
#在{{ }}语法中,只能写表达式,不能写语句,也不能调用js相关的方法
9.setDATA()修改数据
小程序中修改数据不推荐使用赋值的方法进行修改,通过赋值的方法修改数据无法改变页面的数据
而是要通过setDATA()方法进行修改,setDATA()方法接受方法作为参数,key是需要修改的数据,value是最新的值
setDATA()方法有两个作用
1.更新数据
2.驱动视图更新
10.简易双向数据绑定
在WXML中,普通属性的绑定是单向的,例如:<input value="{{value}}">
如果希望用户输入数据的同时改变data中的数据,可以借助简易双向绑定。在对应属性之前添加model:前缀即可,例如<input model:value="{{value}}"/>
#简易双向绑定的属性值如下限制:
#只能是一个单一字段的绑定,例如:错误用法:<input model:value="值为{{value}}"/>
#尚不能写data路径,也就是不支持数组和对象,例如:错误用法<input model:value="{{a,b}}"/>
11.列表渲染
列表渲染就是指通过循环遍历一个数组或对象,将其中的每个元素渲染到页面上
在组件上使用wx:for属性绑定一个数组或对象,既可以使用每一项数据重复渲染当前组件
每一项的变量名默认为item,下标变量名默认为index
在使用wx:for进行遍历时,建议加上wx:key属性,we:key的值以两种形式提供:
1.字符串:代表需要遍历的array中item的某个属性,该属性的值需要是列表中唯一的字符串或数字,且不能动态改变
2.保留关键字*this代表在for循环中的item本身,当item本身是一个唯一的字符串或数字时可用
#如果不加wx:key,会报一个warning,如果明确知道该列表是静态,即以后的数据不会改变,或者不必关注其顺序,可以选择忽略
#在给wx:key添加属性值的时候,不需要使用双大括号语法,直接使用遍历的array中的item的某个属性
1.如果需要对默认的变量名和下标进行修改,可以使用wx:for-item和wx:for-index
使用wx:for-item可以指定数组当前元素的变量名
使用wx:for-index可以指定数组当前下标的变量名
2.将wx:for用在<block/>标签上,以渲染包含多个节点的结构块
<block/>并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性
<block/>标签在wxml中可以用于组织代码结构,支持列表渲染,条件渲染等
12.条件渲染
条件渲染主要用来控制页面结构的展示和隐藏,在微信小程序中实现条件渲染有两种方式
1使用wx:if,wx:elif,wx:else属性组
2.使用hidden属性
wx:if: 当条件为true时结构展现出来,否则结构不会展示,通过移除/新增节点的方式实现
hidden: 当条件为true时结构隐藏,否则结构展示出来,通过display样式属性的方式实现