微信小程序2

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样式属性的方式实现

相关推荐
是江迪呀11 小时前
实时看大家都在干嘛?我靠一行监听函数,做了个轻互动小程序
前端·微信小程序
码视野11 小时前
课后报名小程序 — 从需求到原型的全栈实践
小程序
打瞌睡的朱尤15 小时前
微信小程序1~25
微信小程序·小程序
hnxaoli15 小时前
win10小程序(十八)剪切板循环粘贴
python·小程序
拖孩16 小时前
我用 AI 搓了一个"比谁更持久"的微信小游戏,AI实现只用了一天,微信审核却用了一个月!!!
微信小程序·ai编程·游戏开发
河北清兮网络科技1 天前
短剧 APP 产品说明
小程序·uni-app·短剧
AI品信智慧数智人1 天前
文旅景区小程序集成数字人智能语音交互系统,山东品信解锁AI伴游新玩法✨
人工智能·小程序
医疗信息化王工2 天前
钉钉小程序开发实战:投诉管理系统
小程序·钉钉·开发·投诉管理
灵机一物2 天前
灵机一物AI原生电商小程序(已上线)-从“48 小时失联”到“长期可触达”:一套小程序公众号关注引导 + 订阅消息授权的产品化设计
小程序