小程序开发入门教程(五)

微信小程序开发入门教程 含视频 有源码 微信小程序开发入门教程   做任何程序开发要首先找到其官方文档,我们先来看看其有哪些官方文档。 微信小程序开发文档链接为:https://mp.weixin.qq.com/debug/wxadoc/dev/index.html,如下图:     这里就是做微信小程序开发的全部官方文档。 知道了文档的位置,下面我们来介绍下如何做一个微信小程序开发:  /****** 阅读详情

背景

上一篇文章我们已经介绍了微信小程序运行的宿主环境、启动过程以及页面的渲染过程,还介绍了生命周期函数,通过behaviors 可以用来让多个页面有相同的数据字段和方法,通过Component可以构建更加复杂的页面。之前的几篇文章我们已经对微信小程序有了一个感性的认识,接下来我们将会详细介绍微信小程序各个部分的开发细节,这篇文章我们将会介绍WXML的能力。WXML是框架设计的一套标记语言,正如之前所提到的利用WXML编写的.wxml将会定义页面的结构,WXML具有数据绑定、列表渲染、条件渲染、模版和事件等能力。

数据绑定

微信小程序页面渲染时,框架会将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.js
Page({

    /**
     * 页面的初始数据
     */
    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.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        myArray : [
            [1, 2, 3],
            [4, 5, 6],
            [7, 8, 9]
        ]
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {

    },
})

最后

有兴趣可以关注公众号QStack,会定期分享一些文章和免费的学习资源。

【微信小程序开发小白零基础入门】微信小程序入门【建议收藏】 微信小程序入门 前言 随着科技的不断进步,很多功能将会开放,那么很多需求也将会因为现实而得到满足,这是一种不需要下载和安装就可以使用的应用软件。用户只需扫描和搜索就可以打开应用程序。它很容易使用,而且很容易实现。小程序带来了巨大的流量,吸引了很多大的人和企业家前来追踪,也显示出它强大的生命力。小程序是下一个被确定为互联网新品种的程序,信已经成为不可缺少的交流工具,小程序依附于微信,用户搜索起来也会更方便,其实这就是小程序发展的前景和优势。 提示:以下是本篇文章正文内容,下面案例可供参考 一、小程序的概 阅读详情

相关推荐

微信小程序 | 小程序开发

事实上,目前小程序在我们生活中已经随处可见(特别是这次疫情的推动,不管是什么岗位、什么年龄阶段的人,到哪都需要打开健康码)WePY是由腾讯开源的,一款让小程序支持组件化开发的框架,通过预编译的手段让开发者可以选择自己喜欢的开发风格去开发小程序。Mpvue是一个使用Vue开发小程序的前端框架,也是 支持 微信小程序、百度智能小程序,头条小程序 和 支付宝小程序;微信小程序、支付宝小程序、淘宝小程序、抖音小程序、头条小程序、QQ小程序、美团小程序等。,其他平台的小程序往往是平台本身的一些公司或者顺手开发的。

CoderHing的博客~ 1万+

微信小程序学习——框架视图层(view)

视图层是有WXML与WXSS编写的,由组件来进行展示。 WXML(WeiXin Markup Language)用于写页面结构的。 WXSS(WeiXin Style Sheet)用于页面的样式。 组件(Component)是视图的基本组成单元。 一、数据绑定 组件属性(需要在引号之内) 1 <view id="item-{{id}}"></view> ...

weixin_30654583的博客 470

支付宝小程序入门教程+案例demo

支付宝小程序入门教程+案例demo 尊重原创,转载请注明出处 一、支付宝小程序开发工具你要有吧? 这里是最新版下载链接(传送门)—>支付宝小程序开发者工具最新版下载地址(win64/mac版) 目前你只要使用手机端支付宝扫一扫登录开发工具,新建或打开已经准备好的代码包,填写申请的小程序APPID就可以开发了。 

朝花吸食的剥壳 1万+

微信小程序开发(超详细保姆式教程)

微信小程序开发(超详细保姆式教程)

m0_64875238的博客 64万+

微信小程序开发入门教程(详细版)

实现滚动区域时,需设置固定高度并通过CSS控制。app.json 配置示例。Page.js 基本结构。

lumutong的博客 1483

微信小程序开发入门教程-小程序账号注册及开通

17年小程序开始公测,经过5年的发展,无论从组件、开发工具、api、生态、社区,都已经发展的非常成熟了。如果17年年初你看小程序,觉得无需安装即用即走还是一个理念的话。站在今天看过去,往往是先提出一个先进的理念,然后再不断的朝着目标迈进。其实不仅是程序员会学习各种各样的技术,非程序员有时候也想把自己的想法落地,看着自己开发的应用程序随着日积月累,用户越来越多,知名度也越来越高。从0到1开发一款应用,并接受市场的检验无疑是美妙的。但人总是有分工,有人提出美好的愿景,有人得扎扎实实的落地。那小程序如何落地呢?其

低代码布道师的博客 2987

微信小程序项目开发【从0到1~入门篇】

打开刚下载好的微信开发者工具,扫码登录、创建小程序项目。登录微信公众号平台,在开发->开发设置->开发者ID中找到你小程序的AppID并填入到项目设置里。

m0_49263811的博客 4万+

【小程序教程】零基础微信小程序开发及实例详解

利用微信开发者工具制作了一个最基础的小程序“演示的示例”,主要介绍了微信小程序的开发步骤以及主要的过程详解,希望对大家有帮助。

9989

微信小程序开发【从0到1~入门篇】

1.1 什么是小程序?1.2 小程序可以干什么?同App进行互补,提供同app类似的功能,比app操作更加简洁的轻应用通过扫一扫或者在微信搜索即可下载用户使用频率不高,但又不得不用的功能软件,目前看来小程序是首选连接线上线下。

m0_63300795的博客 4万+

保姆级教程:用PROGRAM_FTDI搞定Xilinx FPGA的JTAG调试器(基于FT232/FT2232/FT4232)

本文详细介绍了如何使用FT232/FT2232/FT4232系列芯片通过PROGRAM_FTDI工具配置Xilinx FPGA的JTAG调试器。从芯片选型、驱动安装到固件烧写和Vivado验证,提供了完整的实操指南和避坑要点,帮助开发者低成本实现高效调试。

weixin_29271053的博客 2176

CondaHTTPError: HTTP 404 NOT FOUND for url

用conda创建新环境时出现问题了。

qq_40713201的博客 1270

微信小程序入门教程+案例demo

微信小程序入门教程+案例demo 尊重原创,转载请注明出处:原文查看惊喜更多 http://blog.youkuaiyun.com/qq137722697 首先摆在好姿态,——微信小程序开发也就那么回事。你只需要一点点css(真的只要一点点)的基础就可以了。 认清微信小程序开发其实,我觉得小程序就是将微信官方提供20+个基础组件(目前有26个)进行排列组合,然后加上一些css样式,对用户的操作进行反馈(调

大力哥的博客 16万+

FPGA赋能:从加权灰度均值到快速收敛的自动曝光实战

本文深入探讨了FPGA在工业视觉自动曝光算法中的应用,重点介绍了加权灰度均值法的优化实现与快速收敛策略。通过硬件友好的算法改造和流水线架构设计,FPGA方案能在1帧内完成曝光调整,显著提升处理速度和能效比,适用于复杂光照条件下的工业检测场景。

weixin_29306317的博客 83

微信小程序开发入门教程

现在微信小程序越来越火了,相信不少人都通过各种途径学习过微信小程序或者尝试开发,作者也是如此,特此将学习成果与诸位分享让诸位少走弯路!!!

万维网连五洲,二进制写尽天下事,喜欢结识新伙伴寻找志同道合的朋友,欢迎一起探讨学习 5084

WRF-Chem新手避坑指南:从chem_opt到emiss_opt,那些手册里没明说的参数配置实战

本文为WRF-Chem新手提供从chem_opt到emiss_opt的参数配置实战指南,解析官方文档中未明确的常见陷阱与解决方案。通过华北重霾案例,详细讲解化学机制选择、排放源配置及特殊参数组合的注意事项,帮助用户避开常见错误,提升模拟效率。

weixin_30897079的博客 282

智能织梦:基于Rokid AR眼镜的家庭情感记忆增强系统设计与实践

本文介绍了基于Rokid AR眼镜的'智能织梦'系统,通过增强现实技术捕捉和重现家庭情感记忆。系统利用多模态传感器和轻量级情感识别模型,自动记录家庭互动中的情感峰值时刻,并生成沉浸式记忆片段。测试数据显示,该系统显著提升了家庭情感互动的频率和质量,特别适用于多代同堂家庭和记忆唤醒场景。

sre5engineer的博客 538

零基础入门微信小程序开发

本课程是一个系列入门教程,目标是从 0 开始带领读者上手实战,课程以微信小程序的核心概念作为主线,介绍配置文件、页面样式文件、JavaScript 的基本知识并以指南针为例对基本知识进行扩展,另外加上开发工具的安装、小程序发布等内容,共 9 篇文章。

GitChat 34万+

Docker “docker login“ 失败? 登录阿里云镜像仓库仓库 unauthorized: authentication required

文章目录听说你 login fail?来,让我们解决一下!登录,撒花 听说你 login fail? 美滋滋的在服务器上安装完成Docker应用,开始配置阿里云镜像加速?然后被阿里云官方文档蹂躏?别急别急,让我来拯救你。 我们先来看看 阿里云官方文档 Docker镜像基本操作: 好家伙,emmm… 上来直接就Login Succeeded,这不简直so easy?我们也来照着操作操作: docker@default-online:~$ docker login registry.cn-hangzhou.a

zhuzicc的博客 1万+

微信小程序开发入门(一)

所有示例的完整代码,都可以从 GitHub 的代码仓库下载。 一、小程序是什么? 学习小程序之前,先简单说一下,它到底是什么。 字面上讲,小程序就是微信里面的应用程序,外部代码通过小程序这种形式,在微信这个手机 App 里面运行。 但是,更准确的说法是,小程序可以视为只能用微信打开和浏览的网站。小程序和网页的技术模型是一样的,用到的 JavaScript 语言和 CSS 样式也是一样的,只是网页的 HTML 标签被稍微修改成了 WXML 标签。所以,小程序页面本质上就是网页。 小程序的特殊之处..

jinking01的专栏 4万+

2026全网最新华为OD机试真题目录A+B+C+D+E卷(持续收录中)-Python版

🔔本文收录于「最新最全华为OD机试真题(Python版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!本人所写题库均精心搜集于互联网。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新皆可阅读使用!

**My Coding Family** 10万+

基于SiamFC的红外目标跟踪

初始化阶段:在第一帧中,通过用户标注获得目标框,从目标区域中提取一个固定大小的模板(称为 exemplar)。搜索阶段:在后续帧中,在以当前目标中心为中心的较大区域(称为 instance)内进行搜索,将模板与搜索区域通过卷积操作得到响应图。位置更新:在响应图中找到峰值位置,并转换到原图坐标,用以更新目标中心。部分实现中还会考虑多尺度搜索和目标尺寸更新。import cv2# 定义 SiamFC 简易网络(示例)# 特征提取部分,注意红外图像通常为单通道,使用较少的卷积核数提高实时性。

weixin_43745234的博客 775

小程序简单开发入门教程

五分钟上手-微信小程序 1:用没有注册过微信公众平台的邮箱注册一个微信公众号, 申请帐号 ,点击 https://mp.weixin.qq.com/wxopen/waregister?action=step1 根据指引填写信息和提交相应的资料,就可以拥有自己的小程序帐号。注册完成之后开始登录。 image 2:登录 https://mp.weixin.qq.com 我们可以在菜单 “设...

qq_38822390的博客 1685

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【小程序】如何开发属于自己的一款小程序

本文涉及小程序简介、小程序代码构成、小程序的宿主环境、协同工作、小程序的发布等内容。

十八岁讨厌编程的博客 2万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

微信小程序开发实战 ⑤(API及多人协调开发)

能够知道小程序如何进行协同开发和发布:成员管理、发布小程序、查看运营数据本文到这里就结束了,大佬们的支持是我持续更新的最大动力,希望这篇文章能帮到大家💪相关专栏连接🔗下篇文章再见ヾ( ̄▽ ̄)ByeByeHomePage社区链接🔗微信小程序专栏🔗。

m0_61490399的博客 3782

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

小程序开发入门教程

小程序本质上是一套Hybrid开发框架,因此从技术上看,小程序属于旧瓶装新酒。但是依托于微信这个超级平台,在配合线下无数的轻量使用场景,小程序推出的时机恰到好处。从技术实现的角度看,小程序是融合原生和WEB特性的一套Hybrid混合开发框架。从原生能力上看,每个小程序都有原生的路由管理,每个页面都能监听部分原生App的生命周期,同时暴露了特定的原生API。从WEB能力上看,小程序支持绝大部分CSS...

Joychen404的博客 1万+

微信小程序入门教程 --(保姆级)

小程序入门保姆级教程

叶子的博客 8921
上一篇: 微信小程序开发入门教程(四)
下一篇: 微信小程序开发入门教程(六)
QStack
博客等级 码龄6年 30粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值