小程序开发入门教程(小程序开发入门教程视频)

数据绑定

微信小程序页面渲染时,框架会将WXML文件同对应的Page的data进行绑定,在页面中我们可以直接使用data的属性,其使用的语法是Mustache语法,也就是使用双大括号将变量或简单的运算规则包裹起来,实现的主要渲染方式有以下几种:

简单绑定

简单绑定就是使用Mustache语法(双大括号)将变量包起来,在模版中直接作为字符串输出使用,可以用于内容、组件属性、控制属性、关键字等输出,其中关键字输出是指将JavaScript中的关键字按照其真值输出。我们还是以之前建立的测试项目为例,新建一个test页面,其test.wxml内容如下:

<!--pages/test/test.wxml--><!-- 作为内容直接输出 --><view>{{content}}</view><!-- 作为属性输出 --><view style="border: {{border}}">作为属性渲染</view><!-- 关键字 --><checkbox checked="{{false}}"></checkbox>复制代码

test.json内容如下

Page({ /** * 页面的初始数据 */ data: { content: '作为内容', border: 'solid 1px #f00', showContent: 'false' }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { },})复制代码

最后的运行结果如下

小程序开发入门教程(小程序开发入门教程视频)

需要注意的是组件属性为boolean类型时,不要直接写checked=“false”,这样checkde的值是一个“flase”字符串,转换成boolean类型后其代表true,这种应该使用关键字输出checked=“{{false}}”。

运算

在{{}}中不仅可以直接显示数据,还支持一些简单的运算如三元运算、算数运算、判断逻辑、字符串运算。还是以test页面为例,其test.wxml如下

<!--pages/test/test.wxml--><!-- 三元表达式 --><view>{{showContent ? '显示文本' : '不显示文本'}}</view><!-- 算数运算符 --><view>{{num1 num2}} 1 {{num3}} = ?</view><!--字符串运算 --><view>{{"name : " name}}</view><!-- 逻辑判断 --><view>{{num3 > 3}}</view><!-- 数据路径运算 --><view>{{student.age}}{{myArray[0]}}</view>复制代码

test.js如下

Page({ /** * 页面的初始数据 */ data: { showContent:false, num1 : 1, num2 : 2, num3 : 3, name : 'QStack', student : { age : 12 }, myArray : ['arr1', 'arr2'] }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { },})复制代码

最终结果如下

小程序开发入门教程(小程序开发入门教程视频)

组合

data中数据可以在模版再次组合成新的数据结构,这种组合常常在数组或对象中使用,数组的组合比较简单,对于对象的组合常用于模版中,我们下一篇文章再仔细介绍,数组的组合就是直接将值放置到数组的某个下标下:

<!-- 数组组合--><view>{{[myValue, 2, 3, "string"]}}</view>复制代码

Page({ /** * 页面的初始数据 */ data: { myValue : 1, }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { },})复制代码

其最后的结果为

1, 2, 3, string复制代码

条件渲染

wx:if

除了简单的数据绑定,常常还会使用逻辑分支,通过逻辑分支控制是否渲染该部分,使用wx:if="{{判断条件}}"判断是否渲染,如果判断条件为真则渲染该代码块,反之则不渲染。

<view wx:if="{{showContent}}" >{{[myValue, 2, 3, "string"]}}</view>复制代码

Page({ /** * 页面的初始数据 */ data: { myValue : 1, showContent : false }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { },})复制代码

如上代码则不会渲染,与此同时WXML也支持使用wx:elif和wx:else,如下

<view wx:if="{{showContent}}" >{{1}}</view><view wx:elif="{{showContent}}" >{{2}}</view><view wx:else="{{!showContent}}" >{{3}}</view>复制代码

block wx:if

wx:if是一个控制属性,可以加在任何组件上,但是如果想要控制多个控件但是不想影响布局,则可以使用block:if,block不是一个组件而是一个包装元素,在渲染过程中不做任何渲染,由属性控制。

wx:if与hidden

wx:if是控制是否渲染,hidden是控制是否显示,无论hidden是什么值都会调用渲染线程去渲染组件。hidden适用于状态频繁切换的场景,避免重复渲染影响性能。

列表渲染

组件的wx:for控制属性用于遍历数组,重复渲染组件,在遍历过程中当前项的下标变量默认为index,数组当前项变量名默认为item,如:

<view wx:for="{{myArray}}">{{index}} : {{item}}</view>复制代码

// pages/test/test.jsPage({ /** * 页面的初始数据 */ data: { myArray : [0, 1, 2], }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { },})复制代码

index、item变量名可以通过wx:for-index、wx:for-item属性修改,在普通遍历中没有必要修改index和item,当wx:for嵌套使用时就有必要设置变量名,避免变量名重复,如下面遍历一个二维数组

<view wx:for="{{myArray}}" wx:for-index="myIndex" wx:for-item="myItem"> <block wx:for="{{myItem}}" wx:for-index="subIndex" wx:for-item="subItem"> {{subItem}} </block></view>复制代码

// pages/test/test.jsPage({ /** * 页面的初始数据 */ data: { myArray : [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { },})

最后

如果你觉得此文对你有一丁点帮助,点个赞。或者可以加入我的开发交流群:1025263163相互学习,我们会有专业的技术答疑解惑

如果你觉得这篇文章对你有点用的话,麻烦请给我们的开源项目点点star:http://github.crmeb.net/u/defu不胜感激 !

完整源码下载地址:https://market.cloud.tencent.com/products/33276

PHP学习手册:https://doc.crmeb.com
技术交流论坛:https://q.crmeb.com

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年4月8日 上午10:50
下一篇 2023年4月8日 上午11:06

相关推荐

  • 软件项目管理体系

    软件项目管理体系 随着信息技术的快速发展,软件开发已经成为现代社会不可或缺的一部分。然而,传统的软件项目开发方式已经无法满足现代软件开发的需求。因此,建立一种有效的软件项目管理体系…

    科研百科 2024年9月25日
    19
  • 桂林农科所聊燕

    桂林农科所聊燕 桂林农科所是中国农业科学研究的圣地,也是中国燕类的重要栖息地之一。在这里,我们有幸与桂林农科所的科学家们进行了一次深入的对话,探讨了桂林燕的生活习性、物种特征以及在…

    科研百科 2024年10月19日
    0
  • wms仓储系统软件有哪些功能?(仓储软件wms介绍)

    WMS仓储管理软件是通过计算机技术,对仓库内部的所有作业流程及数据人员进行管理的信息化软件,主要流程包括:通过OMS订单系统接收订单,选择物流仓库,通过仓库、策略、入库、出库、作业…

    科研百科 2022年11月3日
    238
  • 2019年信息系统项目管理

    2019年信息系统项目管理 随着信息技术的不断发展,信息系统项目管理已经成为项目管理中的一个重要领域。在2019年,信息系统项目管理继续发挥着重要的作用,为组织提供了更好的管理和发…

    科研百科 2024年8月15日
    25
  • 南通市都市农业科创中心成立仪式暨专家论证会成功举办(南通现代农业科技创新中心)

    12月28日下午,由南通市科学技术局、崇川区政府主办,崇川区科学技术局、南通市都市现代农业发展有限公司共同承办的南通市都市农业科创中心成立仪式暨专家论证会,在南通都市农业公园成功举…

    科研百科 2022年10月22日
    225
  • 如何控制项目进度和成本?(如何控制项目进度和成本管理)

    项目进度和成本的跟踪与管理是项目成功的关键。如果不这样做,你就不知道你处于什么位置,更不知道什么时候能达成目标。 错误的方法最终会导致失去控制 一些项目经理判断进度的方法只是简单地…

    科研百科 2022年7月30日
    199
  • 建安项目管理软件

    建安项目管理软件:项目成功的关键 在建筑行业中,建安项目管理软件是一个非常重要的工具,可以帮助项目经理和设计师更好地管理项目。本文将探讨建安项目管理软件的重要性以及如何使用它们来提…

    科研百科 2024年7月28日
    29
  • 会议管理软件有哪些(会议管理软件)

    会议管理软件:让会议管理变得更加简单 随着现代组织越来越注重会议管理,会议管理软件已经成为一种越来越普遍的工具。这些软件可以帮助组织者更好地组织、规划和控制会议,提高会议的效率和质…

    科研百科 2024年6月3日
    34
  • 居家养老服务中心建设 智慧养老平台十大品牌(居家养老智慧平台简介)

    居家养老服务中心建设 智慧养老平台十大品牌(居家养老智慧平台简介) 养老项目是一个非常重要的领域,它在很大程度上取决于个人的需求和计划。以下是一些智能养老管理软件推荐和可能帮助盈利…

    科研百科 2024年3月25日
    70
  • 合同管理电子化

    合同管理电子化:创新管理手段,提高合同管理效率 随着互联网技术的快速发展,合同管理电子化已成为企业合同管理的主流趋势。合同管理电子化不仅提高了合同管理的便捷性和效率,还对企业的风险…

    科研百科 2024年8月17日
    23