微信小程序——基本语法

这篇具有很好参考价值的文章主要介绍了微信小程序——基本语法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

WXML语法

WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。

  1. 数据绑定
  <!--数据绑定使用 Mustache 语法(双大括号)将变量包起来-->
  <view> {{ message }} </view>
  <view id="item-{{id}}"> </view>
  <view wx:if="{{condition}}"> </view>
  <checkbox checked="{{false}}"> </checkbox>
  <!-- WXML 中的动态数据均来自对应 Page 的 data-->
  Page({
    data: {
      message: 'Hello 微信小程序!',
  	id:0,
  	condition:false
    }
  })

注意事项: 小程序中为单项数据流 model —> view
修改数据: this.setData({message: ‘修改之后的数据’}, callback)

  1. 列表渲染
   <!--使用 wx:for 绑定一个数组,即可使用数组中各项的数据重复渲染该组件-->
   <!--默认数组的当前项的下标变量名默认为 index,数组当前项的变量名默认为 item-->
   <view wx:for="{{array}}">
     {{index}}: {{item.name}}
   </view>
   <!--
   	自定义
   	1.使用 wx:for-item 可以指定数组当前元素的变量名
   	2.使用 wx:for-index 可以指定数组当前下标的变量名
   -->
   <view wx:for="{{array}}" wx:for-index="id" wx:for-item="itemName">
     {{id}}: {{itemName.name}}
   </view>
   
   Page({
     data: {
       array: [{
         name: '微信',
       }, {
         name: '小程序'
       }]
     }
   })

wx:for 也可以嵌套

   <view wx:for="{{[1, 2, 3, 4, 5, 6, 7, 8, 9]}}" wx:for-item="i">
     <view wx:for="{{[1, 2, 3, 4, 5, 6, 7, 8, 9]}}" wx:for-item="j">
       <view wx:if="{{i <= j}}">
         {{i}} * {{j}} = {{i * j}}
       </view>
     </view>
   </view>

<block/>标签上用wx:for,可以渲染一个包含多节点的结构块。

注意: <block/> 并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性 。

   <block wx:for="{{[1, 2, 3]}}">
     <view> {{index}}: </view>
     <view> {{item}} </view>
   </block>

wx:key用来指定列表中项目的唯一的标识符。

wx:key 的值以两种形式提供:1. 字符串,数组中的一个item的属性,如id(唯一的字符串或者数字);2. 保留关键字*this,表示for循环中item本身(item本身需要是唯一的)。
当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。
如不提供 wx:key,会报一个 warning, 如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略。
3. 条件渲染
wx:if="" 用来判断是否需要渲染该代码块。

   <view wx:if="{{condition}}">显示</view>
   <!--也可以使用 wx:elif 和 wx:else -->
   <view wx:if="{{num>=90}}">A</view>
   <view wx:elif="{{num>=70}}">B</view>
   <view wx:elif="{{num>=60}}">C</view>
   <view wx:else>D</view>
   <!-- wx:if 是一个控制属性,需要将它添加到一个标签上。如果要一次性判断多个组件标签,可以使用一个 标签将多个组件包装起来,并在上边使用 wx:if控制属性。 -->
   <block wx:if="{{condition}}">
     <view> view1 </view>
     <view> view2 </view>
   </block>
   
   Page({
   	data:{
   		condition:true,
   		num:85
   	}
   })

wx:if VS hidden

hidden 用法: <view hidden='{{true}}'></view>

wx:if条件为 false 的时候不加载,条件切换的时候决定元素销毁或者重新加载渲染 。

hidden 始终加载元素, 条件切换的时候决定元素的显示和隐藏 。

注意: 1. 频繁切换时,建议使用hidden;2. 控制条件复杂时,建议使用 wx:if 搭配wx:elif、wx:else进行展示与隐藏的切换。

  1. 模板(template)

在模板中定义代码片段,然后子啊不同的地方调用。

   <!--使用 name 属性,作为模板的名字。然后在<template/>内定义代码片段-->
   <template name="msg">
   	<view>
       	<text> {{index}}: {{msg}} </text>
       	<text> Time: {{time}} </text>
       </view>
   </template>
   <!--使用 is 属性,声明需要的使用的模板,然后将模板所需要的 data 传入-->
   <!--...item:对象解构-->
   <template is="msg" data="{{...item}}"></template>
   
   Page({
     data: {
   	//数据源
       item: {
         index: 1,
         msg: '测试信息',
         time: '2022-05-20'
       }
     }
   })
  1. is 属性可以使用{{item % 2 == 0 ? ‘even’ : ‘odd’}}( Mustache 语法),来动态决定具体需要渲染哪个模板
  2. 模板拥有自己的作用域,只能使用 data 传入的数据以及模板定义文件中定义的 <wxs/> 模块。
  3. 引用
    WXML 提供两种文件引用方式importinclude
    1. import 只会 import 目标文件中定义的 template,而不会 import 目标文件 import 的 template。 微信小程序——基本语法
    2. include 可以将目标文件除了 <template> <wxs/> 外的整个代码引入,相当于是拷贝到 include 位置 。

常用组件

组件 说明
<view></view> 视图容器(类似于HTML中的<div>
<icon></icon> 图标
<text></text> 文本
<button></button> 按钮
<checkbox></checkbox> 复选框
<form></form> 表单
<input/> 输入框
<radio></radio> 单选按钮
<switch></switch> 开关选择器
<picker></picker> 滚动选择器
<image></image> 图片

详见组件页面:https://developers.weixin.qq.com/miniprogram/dev/component/

事件

什么是事件?

  • 事件是视图层到逻辑层的通讯方式。
  • 事件可以将用户的行为反馈到逻辑层进行处理。
  • 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。
  • 事件对象可以携带额外信息,如 id, dataset, touches。

事件的使用方式

  1. 在组件中绑定一个事件处理函数

    <view id="tapTest" data-hi="Weixin" bindtap="tapName">点击</view>
    
  2. 在响应的Page定义中写上相应的事件处理函数

    Page({
        tapName:function(event){
            console.log(event.target.dataset.hi)
        }
    })
    

WXML的常用冒泡事件列表

事件类型 触发条件
touchstart 手指触摸动作开始
touchmove 手指触摸后移动
touchcancel 手指触摸动作被打断,如来电提醒,弹窗
touched 手指触摸动作结束
tap 手指触摸后马上离开
longpress 手指触摸后,超过350ms再离开,如果指定了事件回调函数并触发了这个事件,tap事件将不被触发。
longtap 手指触摸后,超过350ms再离开(推荐使用longpress事件代替)

绑定方式

  1. bind 绑定:事件绑定不会阻止冒泡事件向上冒泡 。
<view bindtap="handleTap" class='start_container'>
 	<text class='start'>开启小程序之旅</text>
</view>
  1. catch 绑定: 事件绑定可以阻止冒泡事件向上冒泡 。
<view catchtap="handleTap" class='start_container'>
 	<text class='start'>开启小程序之旅</text>
</view>

事件对象

组件触发事件时,逻辑层绑定该事件的处理函数会收到一个事件对象。
微信小程序——基本语法
微信小程序——基本语法
target 和 currentTarget中包含id和dataset属性。
id 属性:当前组件的id 。
dataset属性: 当前组件上由data-开头的自定义属性组成的集合 ( 用于事件的逻辑处理 )。
在 WXML 中,这些自定义数据以 data- 开头,多个单词由连字符 - 连接。这种写法中,连字符写法会转换成驼峰写法,而大写字符会自动转成小写字符。如:
微信小程序——基本语法
为组件提供data-自定义属性传参,其中代表的是参数的名字。

event.target 和 event.currentTarget 的区别

  1. event.target 是触发事件的对象,但不一样是绑定事件的对象,如: 事件委托, 冒泡 。
  2. currentTarget 触发时间的对象一定是绑定事件的对象, 没有事件委托
    事件对象传参
    微信小程序——基本语法

下拉刷新效果的实现

  1. 启用下拉刷新有两种方式:
    ①全局开启下拉刷新
    在app.json的window节点中,将enablePullDownRefresh设置为true
    ②局部开启下拉刷新
    在页面的.json配置文件中,将enablePullDownRefresh设置为true

  2. 在全局或页面的.json配置文件中,通过backgroundColor和backgroundTextStyle来配置下拉刷新窗口
    的样式,其中:

    ​ backgroundColor用来配置下拉刷新窗口的背景颜色,仅支持16进制的颜色值
    ​ backgroundTextStyle用来配置下拉刷新loading的样式,仅支持dark和light

  3. 在页面的.js 文件中,通过onPullDownRefresh()函数即可监听当前页面的下拉刷新事件。

  4. 停止刷新的效果

    当处理完下拉刷新后,下拉刷新的loading效果会一-直 显示,不会主动消失,所以需要手动隐藏loading效果。此时,调用wx.stopPullDownRefresh()可以停止当前页面的下拉刷新。

上拉触底事件

上拉触底是移动端的专有名词,通过手指在屏幕上的.上拉滑动操作,从而加载更多数据的行为。
微信小程序——基本语法
上拉触底距离指的是触发上拉触底事件时,滚动条距离页面底部的距离。
可以在全局或页面的json配置文件中,通过onReachBottomDistance属性来配置.上拉触底的距离。
小程序默认的触底距离是50px,在实际开发中,可以根据自己的需求修改这个默认值。文章来源地址https://www.toymoban.com/news/detail-484232.html

微信小程序开发小技巧

  1. 小程序的初学者可能对于小程序的官网的众多内容一时毫无头绪,无从下手不知道从哪 来找想要的内容
  2. 当在小程序中想要实现某一种布局,查看:组件
  3. 当在小程序中想要实现某一个功能,查看: API
  4. 当在小程序中想要进行某一个配置或者某一种页面语法,查看: 框架 + 指南
  5. 查看小程序官网的时候要细心,最好是将要使用的 API 的相关内容看完整,因为 API 的 配置及限制较多

到了这里,关于微信小程序——基本语法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp打包微信小程序。报错:https://api.weixin.qq.com 不在以下 request 合法域名列表

    场景:在进行打包上传测试时,发现登录失效,但在测试中【勾选不效应合法域名】就可以。 出现原因:我在获取到用户code后,直接使用调用官方接口换取openid 解决方案: 可以把code带给后端,让他们返回token值

    2024年02月09日
    浏览(39)
  • XML(eXtensible Markup Language)

    目录 为什么需要XML? 一 XML语法  1.文档声明 2.元素 语法:  3.属性  4.注释 5.CDATA节 二 树结构 三 转义字符 四 DOM4J 1.XML解析技术 2.dom4j介绍 3.dom4j基本使用 XML 指可扩展标记语言(e X tensible  M arkup  L anguage)。 XML 被设计用来传输和存储数据,不用于表现和展示数据,HTML 则用来

    2024年02月14日
    浏览(38)
  • 微信小程序:This Mini Program cannot be opened as your Weixin version is out-of-date.

    升级基础库3.2.0,然后PC端整个小程序都打不开了,点击小程序提示 ”This Mini Program cannot be opened as your Weixin version is out-of-date. Update Weixin to the latest version.“ ,并且点击 Update Weixin 按钮没有反应 pc基础库还没那么高 PC端的隐私能力还未上线,也不会拦截隐私接口调用 这个问题

    2024年02月03日
    浏览(37)
  • 微信小程序不在以下 request 合法域名列表中,请参考文档:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/n

    出现不在以下 request 合法域名列表中,请参考文档:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html 如果时仅仅提供了http协议接口、暂时没用提供https协议的接口 可以开启[不校验合法域名、TLS版本以及HTTPS证书]的选项 只能在开发和调试使用,项目上线之后要勾

    2024年02月15日
    浏览(33)
  • 微信小程序基础语法

    官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/ bindtap data-xxx事件节点(xxx是节点名称),ghp是事件节点数据 bindtap用于绑定事件,clickButton是事件名 注意 :事件节点名称统一是小写,即使使用大写,经过解析也会变成小写,比如上面我们定义的时间节点是myName,经过

    2024年02月12日
    浏览(36)
  • 5-微信小程序语法参考

    官网传送门 WXML 中的动态数据均来自对应 Page 的 data。 数据绑定使用 Mustache 语法( 双大括号 )将变量包起来 ts WXML Mustache语法应用场景 绑定内容 绑定属性 运算(三元运算、算术运算) 逻辑判断 字符串运算 数据路径运算 注:微信小程序数据绑定与vue2的语法相同 官网传送

    2024年01月18日
    浏览(22)
  • 微信小程序 事件和语法

     属性列表 微信小程序 事件绑定 在函数中调用data的值 传递参数 接收参数 input 控制是否显示 隐藏 wx:if 通过创建和溢出元素实现 控制条件复制时推荐 控制是否显示 隐藏 wx:hidden 通过切换样式方式实现 频繁切换使用这个 循环字符 循环数组对象 指定key提高渲染速度

    2024年02月15日
    浏览(32)
  • 微信小程序(4)- 事件系统和模板语法

    1.1 事件绑定和事件对象 小程序中绑定事件与在网页开发中绑定事件几乎一致,只不过在小程序不能通过 on 的方式绑定事件,也没有 click 等事件, 小程序中绑定事件使用 bind 方法 ,click 事件也需要使用 tap 事件来进行代替,绑定事件的方式有两种: 第一种方式:bind:事件名

    2024年04月17日
    浏览(27)
  • 微信小程序中WXML模版语法-数据绑定方法介绍

    1.数据绑定的基本原则 1在data中定义数据 2在WXML中使用数据 2.在data中定义页面的数据 在页面对应的.js文件中,把数据定义到data对象中即可: 3.Mustache语法的格式 把data中的数据绑定到页面中渲染,使用Mustache语法(双大括号)将变量包起来即可。语法格式为: 4.Mustache语法的应

    2024年02月12日
    浏览(37)
  • 微信小程序------WXML模板语法之条件渲染和列表渲染

    目录 前言 一、条件渲染 1.wx:if 2. 结合 使用 wx:if 3. hidden 4. wx:if 与 hidden 的对比 二、列表渲染 1. wx:for 2. 手动指定索引和当前项的变量名* 3. wx:key 的使用         上一期我们讲解wxml模版语法中的数据绑定和事件绑定(上一期链接:微信小程序-----WXML模板语法之数据绑定与事件

    2024年01月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包