微信小程序开发入门教程(六)

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

背景

上一篇文章我们已经介绍了WXML的数据绑定,通过Mustache语法可以实现简单绑定、运算和组合,还介绍了wx:if的条件渲染,wx:if与hidden之间的差别,最后介绍了wx:for的列表渲染,嵌套时需要使用wx:for-index和wx:for-item进行改名,避免命名冲突。这篇文章将会介绍WXML的模版和用户事件相关内容。

模版

在实际的开发的过程中常常遇到某些相同的结构在不同的地方反复出现,这时通常的做法是将相同布局的代码片段放到一个模版中,在不同的地方传入相应的数据进行渲染,避免重复开发,提升开发效率。

定义模版

模版的定义十分的简单,在<template/>标签内定义代码片段,设置name属性指定模版的属性即可,新建myTemplate.wxml示例代码如下:

<template name="myTemplate">
<view>{{name}}</view>
<view>{{price}}</view>
</template>

使用模版

使用模版时,通过设置is属性指向使用的模版,设置data属性,将模版所需要的变量传入,模版有自己的作用域,只能使用data属性传入的数据,而无法直接使用Page中的data,在渲染时<template/>标签将被模版中的代码块完全替换。但是模版属性is是支持数据绑定,可以通过属性绑定动态决定使用哪个模版。下面的代码演示了如何在之前的test.wxml应用模版。

<import src="../template/myTemplate"></import>
<template is="myTemplate" data="{{name:'苹果', price : '20.12'}}"></template>

模版的数据绑定

在上一篇文章中我们讲了数据绑定,数据绑定有简单绑定、运算和组合,Page中data的数据可以在模版中组合成新的数据结构,上一篇文章我们已经讲述了数组的组合,现在我们结合模版的数据绑定讲述一下对象的组合,其主要有以下三种方式。

直接将数据作为value值进行组合

还是以上面的例子说明,其test.wxml如下

<import src="../template/myTemplate"></import>
<template is="myTemplate" data="{{name : goodsName, price : goodsPrice}}"></template>

test.js如下

// pages/test/test.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
       goodsName : '苹果',
       goodsPrice : '20.11'
    },

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

    },
})
通过“…”将一个对象展开,将key-value拷贝到新的数据结构

test.wxml内容如何:

<!--pages/test/test.wxml-->

<import src="../template/myTemplate"></import>
<template is="myTemplate" data="{{...goods}}"></template>

test.js内容如下:

// pages/test/test.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        goods : {
            name : '苹果',
            price : '20.11'
        }  
    },

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

    },
})
如果key和value相同可以只写key

test.wxml内容如下:

<!--pages/test/test.wxml-->

<import src="../template/myTemplate"></import>
<template is="myTemplate" data="{{name, price}}"></template>

test.js内容如下:

// pages/test/test.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
       name : '苹果',
       price : '20.11'
    },

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

    },
})

import和include

在之前的例子中我们可以看到我们使用<import/>引入模版,在WXML中可以通过<import/>和<include/>引入其他的WXML文件,其二者的区别在于<import/>引入只接受模版的定义,忽略模版定义之外的所有内容。与<import/>相反,<include/>是直接将引入文件中<template/>以外的代码直接拷贝到<include/>处。

事件

WXML中的事件系统与HTML中的DOM事件系统极其相似,也是通过在组件上设置“bind(或catch)+ 事件名”属性进行事件绑定,当触发事件时,框架会调用逻辑层中对应的事件处理函数,并将当前的状态通过参数传递给事件处理函数,由于WXML没有DOM节点的概念,所以事件只能通过WXML绑定,不能通过逻辑层动态绑定,官方对于WXML事件定义如下:

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

事件的分类

事件分为冒泡事件和非冒泡事件:

  • 冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递
  • 非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。

WXML冒泡事件如下:

  • touchstart: 手指触摸动作开始
  • touchmove: 手指触摸后移动
  • touchcancel: 手指触摸动作被打断,如来电提醒、弹窗
  • touchend: 手指触摸动作结束
  • tap: 手指触摸后马上离开
  • longtap: 手指触摸后,超过350ms再离开

对于冒泡事件每个组件都是默认支持的,除去上述事件外其他组件自定义事件无特殊声明都是非冒泡事件,如<form/>的submit事件,<scroll-view/>的scroll事件。

事件的绑定

在之前的文章也使用过事件绑定,事件的绑定的写法与组件的属性一样,以key、value形式存在。

  • key:以bind或catch开头,然后跟上事件的类型,字母均小写如bindtap、catchtouchstart等
  • value:事件函数名,对应于Page中定义的同名函数,找不到同名函数会报错。
    绑定时bind事件绑定不会阻止事件向上冒泡,catch事件会阻止冒泡事件向上冒泡。
<view bindtap="tap1">
view1
<view catchtap="tap2">
view2
<view bindtap="tap3">
view3
</view>
</view>
</view>

如上例,点击view3,首先响应tap3,然后tap2,catchtap会阻止事件传递,所以不会触发tap1.

最后

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

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

相关推荐

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

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

lumutong的博客 1483

小程序开发--- 1. 获取数组中某个字段的值或获取列表索引

最近开始自己琢磨开发微信小程序,遇到些问题,现在做一下总结。 今天有遇到一个需要获取到列表中某一项值,并在其他地方调用的问题。其实思路和获取列表索引的道理一样。如果你还不知道如何获取列表的索引,那么现在我先给大家介绍一下: 1. 大家都知道小程序的.wxss文件类似于css文件,主要用于处理视图的样式。所以,第一步,我们在.wxss文件中先随意写上一个样式,如下所示: ...

a814057962的博客 2万+

微信小程序开发中的数据筛选和搜索功能

首先,在小程序的页面上展示学生列表,可以使用一个列表组件来展示学生数据。当用户选择条件和值后,我们可以使用wx.request方法向服务器发送请求,获取符合条件的学生数据,并更新页面上的学生列表。当用户输入关键字后,我们可以使用wx.request方法向服务器发送请求,获取符合关键字的学生数据,并更新页面上的学生列表。以上是关于微信小程序开发中数据筛选和搜索功能的详细介绍,通过以上代码案例,您可以根据实际需求对数据进行筛选和搜索,并展示相应的结果。除了根据条件筛选数据,我们还可以根据条件对数据进行排序。

吃不胖. 739

微信小程序:区分运行环境并设置对应的请求域名,用wx.getAccountInfoSync()方法实现不同的版本(开发、体验、正式)调用不同的接口域名,

在做微信小程序开发的时候,调式使用的是测试的接口地址,发布体验版本又是体验版本的地址,发布线上的时候又是正式版的地址,每次开发—体验—线上都要调成不用的接口地址,之前我是用注释的方法。

qq_46665317的博客 2327

SMPTE ST 2110 概论(三)

SMPTE ST 2110 概论(三)ST 2110-30:未压缩的PCM音频流ST 2110-31:非PCM音频传输ST 2110-40:辅助数据传输结语 ST 2110-30:未压缩的PCM音频流 鉴于音频系统是广播系统中最复杂,也是最重要的一套系统,我们先来回顾一下广电音频系统的历史。 最老式的音频都是基于模拟信号的,具有有限的动态范围,并且用连续的电压变化来描述音频。再后来就基于数字信号(...

Cidd0422的博客 1万+

DAC8568控制器实战:如何用STM32实现多通道同步输出(附完整代码)

本文详细介绍了如何使用STM32微控制器驱动TI的DAC8568多通道DAC控制器,实现高精度的多通道同步模拟信号输出。内容涵盖硬件设计要点、SPI时序精准配置、驱动层命令构建,并重点解析了通过LDAC引脚实现同步更新的核心策略,提供了完整的代码框架和实战案例,帮助工程师快速解决多通道同步输出的工程难题。

weixin_29179311的博客 173

小程序 求两字符串中是否有相同字符

#include&lt;stdio.h&gt; #include bool fun(const char *a, const char *b,int len) { int m = 0; for (int i = 0;i &lt;len ;i++) { m = m^a[i] ^ b[i]; } if (m) return false; else return true; } int main() ...

qq_41257782的博客 3201

应用处理器(AP)、系统级芯片(SoC)与微控制器(MCU)的区别与联系

应用处理器(AP)、系统级芯片(SoC)与微控制器(MCU)的区别与联系

a_zxswer的博客 1696

求解答微信小程序显示两数相等

今天作业,看书和老师的ppt,试了好多次,不知道哪里错了。希望有大神告诉一下

h553040119的博客 444

手把手教你解决Realsense D455在ROS下IMU数据不输出的问题(附固件降级指南)

本文详细解析了Realsense D455在ROS环境下IMU数据不输出的问题,提供了固件降级和ROS配置的完整解决方案。通过版本兼容性分析和实战操作指南,帮助开发者快速恢复IMU数据流,优化机器人开发体验。

weixin_42531494的博客 373

大模型-internvl高通qnn运行源码解读

模型链接:https://huggingface.co/OpenGVLab/InternVL2-2B论文官方简要说明 https://internvl.github.io/blog/2024-07-02-InternVL-2.0中文解读 https://zhuanlan.zhihu.com/p/702946079在线demo https://internvl.opengvlab.com/

点滴的岁月 1835

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

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

大力哥的博客 16万+

手把手教你学Simulink——高频隔离型双向DC-AC逆变器的建模与仿真

本文系统讲解高频隔离型双向DC-AC逆变器的Simulink建模与仿真,基于DAB+全桥逆变两级拓扑,详述DAB移相控制原理、双闭环控制策略及分步仿真搭建流程。重点涵盖电路建模、控制环设计、参数设置与常见问题调试,强调模块化分步验证与分层控制逻辑,实现安全、高效、灵活的双向能量流动仿真,适用于储能、微电网等场景的系统开发与验证。

MHD0815的博客 110

微信小程序开发入门教程

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

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

C++ Qt6 qml CMakeLists.txt如何添加qrc文件

本文介绍了在Qt6项目中如何通过CMake管理QML图片资源。相比Qt5的qmake,CMake需要手动创建qrc文件并配置CMakeLists.txt。关键步骤包括:1)创建resources.qrc文件并添加图片资源;2)在CMakeLists.txt中设置CMAKE_AUTORCC为ON开启自动资源处理;3)使用qt_add_resources将qrc文件绑定到项目。配置完成后,可通过"qrc:alias"方式引用资源图片,解决了相对路径管理复杂的问题。

琅嬛福地 1455

一文搞懂数据标注

数据标注即通过分类、画框、标注、注释等,对图片、语音、文本等数据进行处理,标记对象的特征,以作为机器学习基础素材的过程。简言之,就是需要给数据做好标注,这样机器就能知道学习哪些内容。

女王の专属领地 9945

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

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

GitChat 34万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

微信小程序开发环境搭建

本文介绍了搭建小程序开发环境的步骤,包括注册小程序、安装微信小程序开发工具(Stable版本)、创建项目等内容。同时,还介绍了使用uni-app开发小程序的环境搭建步骤,包括安装HBuilderX开发工具、安装nvm(Node Version Manager)以及创建uni-app项目等内容。通过本文的指导,读者可以快速搭建小程序开发环境并开始开发自己的小程序应用。

zcs2312852665的博客 6262

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【uniapp】uniapp开发微信小程序入门教程

HBuilderx中uniapp开发微信小程序入门教程,uniapp开启微信开发者工具

TTong_190502的博客 1581

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

如何开发一个个人微信小程序,微信小程序开发入门教程

做任何程序开发要首先找到其官方文档,我们先来看看其有哪些官方文档。 微信小程序开发文档链接为:https://mp.weixin.qq.com/debug/wxadoc/dev/index.html,如下图: 这里就是做微信小程序开发的全部官方文档。 知道了文档的位置,下面我们来介绍下如何做一个微信小程序开发: 第一步: 下载微信小程序开发者工具并安装,下载路径: https://mp.weix...

黎想 12万+

微信小程序入门教程

对于从入门学微信小程序,可以看阮一峰的教程。 主要有4篇: 《微信小程序入门教程之一:初次上手》,链接:http://www.ruanyifeng.com/blog/2020/10/wechat-miniprogram-tutorial-part-one.html 《微信小程序入门教程之二:页面样式》,链接:http://www.ruanyifeng.com/blog/2020/10/wecha...

shykevin的博客 609

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

小程序入门保姆级教程

叶子的博客 8921

【微信小程序开发】开发框架与工具的使用详解

小程序开发框架是一套用于快速构建小程序的开发框架,提供了丰富的组件和API,使得开发者能够快速搭建小程序,并实现丰富的功能。微信小程序开发框架:官方提供的小程序开发框架,使用JavaScript语言进行开发,可运行在微信客户端上;支付宝小程序开发框架:支付宝提供的小程序开发框架,使用JavaScript语言进行开发,可运行在支付宝客户端上;百度智能小程序开发框架:百度提供的小程序开发框架,使用JavaScript语言进行开发,可运行在百度客户端上;字节跳动小程序开发框架。

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值