【微信小程序】-- WXML 模板语法 - 数据绑定(九)

news2024/12/24 2:37:51

请添加图片描述

  • 💌 所属专栏:【微信小程序开发教程】

  • 😀 作  者:我是夜阑的狗🐶

  • 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询!

  • 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘

文章目录

  • 前言
  • 一、数据绑定的基本原则
      • 1、数据绑定的基本原则
      • 2、在data中定义页面的数据
      • 3、Mustache语法的格式
  • 二、应用场景
      • 1、绑定内容
      • 2、绑定属性
      • 3、运算
  • 总结


前言

  大家好,又见面了,我是夜阑的狗🐶,本文是专栏【微信小程序开发教程】专栏的第9篇文章;
  今天开始学习微信小程序的第四天💖💖💖,开启新的征程,记录最美好的时刻🎉,每天进步一点点。
  专栏地址:【微信小程序开发教程】, 此专栏是我是夜阑的狗微信小程序开发过程的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
  如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。


一、数据绑定的基本原则

  前面已经介绍完了小程序的一些常用组件,剩下组件的讲解会在后续讲解。不过接下来先来讲解一下WXML模板语法,让我们原文再续,书接上回。

请添加图片描述

1、数据绑定的基本原则

  之前学过 Vue 的都知道 Vue 语法里也有数据绑定这个概念,而 WXML 里的数据绑定也是跟他类似的,也可以实现数据的单向或双向绑定。 数据绑定的基本原则有两点:

  • 在JS文件中的data中定义数据;
  • 页面的wxml文件中使用数据;

  基本上就是在 JS 端操作数据,WXML 端进行绑定并显示,其中 WXML 中的动态数据均来自对应 Pagedata。下面就来讲解一下怎么实现这个数据绑定的过程。
请添加图片描述

2、在data中定义页面的数据

  在页面对应的 .js 文件中,前面讲到了 WXML 的动态数据来自于 JS 端中的 data 对象,所以把数据定义到 data 对象中即可;

Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 字符串类型的数据
    info: 'Nice 十连双黄',
  },
})

3、Mustache语法的格式

  把data中的数据绑定到页面中渲染,使用 Mustache 语法(简单点就两大括号)将变量包起来即可。语法格式为

<view>{{info}}</view>

  也可以称为插值表达式,自此,就可以在页面动态控制显示的数据,效果如下所示:

请添加图片描述

二、应用场景

   Mustache 语法的主要应用场景如下:绑定内容、绑定属性、运算(三元运算、算术运算等);

1、绑定内容

  上面刚刚讲解的栗子就是动态绑定内容,这里还是简单讲一下具体结构吧:

cshPageData.js:

Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 字符串类型的数据
    info: 'Nice 十连双黄',
  },
})

cshPageButton.wxml:

<view>{{info}}</view>

  运行结果就不做展示了。

2、绑定属性

  除了可以动态绑定内容以外,还可以绑定组件中的属性,这里就以 image 组件为例来讲解。

cshPageData.js:

Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 字符串类型的数据
    info: 'Nice 十连双黄',
    // 图片路径
    imgSrc: '/images/cshTest2.jpg'
  },
})

cshPageButton.wxml:

<view>{{info}}</view>
<image src="{{imgSrc}}" mode="widthFix"></image>

这样就实现了动态绑定属性了。

在这里插入图片描述

3、运算

  Mustache 语法中还可以进行运算,也就是在 WXML中获取到 JS 端的数据时,可以对其进行运算在显示或者做判断。 比如常见的三元运算和算术运算。

  • 三元运算

  语法结构:表达式1 ? 表达式2 :表达式3,接下来可以来围绕着当前数是否大于等于50来讲解来该操作;

cshPageData.js:

  使用 Math.random() 函数来随机生成0到99的数;

Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 生成随机数
	randomNum: Math.random() * 100
  },
})

cshPageButton.wxml:
   在WXML 处理数据;

<view>{{randomNum >= 50 ? '当前数大于等于50' : '当前数小于50'}}</view>
<view>{{info}}</view>
<image src="{{imgSrc}}" mode="widthFix"></image>

   可以来看一下效果:
请添加图片描述

  • 算术运算

  在WXML中对数据进行算术运算更加方便地实现数据的操控输出。

cshPageData.js:

  使用 Math.random() 函数来随机生成0到99的数;

Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 生成随机数
	randomNum: Math.random() * 100
  },
})

cshPageButton.wxml:

   在WXML 处理数据;

<view>生成100以内的随机数:{{randomNum}}</view>
<view>{{randomNum >= 50 ? '当前数大于等于50' : '当前数小于50'}}</view>
<view>{{info}}</view>
<image src="{{imgSrc}}" mode="widthFix"></image>

   可以来看一下效果:
在这里插入图片描述


总结

  感谢观看,这里就是常用的视图容器类组件的介绍使用,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹 🌹 🌹
在这里插入图片描述
  也欢迎你,关注我。👍 👍 👍

  原创不易,还希望各位大佬支持一下,你们的点赞、收藏和留言对我真的很重要!!!💕 💕 💕 最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!下期再见。🎉

更多专栏订阅:

  • 😀 【LeetCode题解(持续更新中)】
  • 🚝 【Java Web项目构建过程】
  • 💛 【微信小程序开发教程】
  • 【JavaScript随手笔记】
  • 🤩 【大数据学习笔记(华为云)】
  • 🦄 【程序错误解决方法(建议收藏)】
  • 🚀 【软件安装教程】



订阅更多,你们将会看到更多的优质内容!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/370829.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DPDK系列之四DPDK整体框架分析说明

一、网络发展和DPDK 在上篇分析过网络应用对DPDK出现的影响。而具体体现在技术上&#xff0c;从最简单来看就是从C10K到c100K甚至更多。而相应的计算的发展也从挖掘单CPU的性能发展到了瓶颈&#xff0c;同样&#xff0c;对于网络设备也遇到了类似的问题。而目前解决问题的方法…

MySQL到Elasticsearch实时同步构建数据检索服务的选型与思考[转载]

前言 本文具体探讨 MySQL 数据实时同步到 Elasticsearch (以下简称 ES ) 技术方案和思考&#xff0c;同时使用一定篇幅介绍一些前置知识&#xff0c;从理论到实践&#xff0c;让读者更好的理解这块内容和相关问题。包括&#xff1a; 为什么我们要将数据从 MySQL 实时同步到 ES …

Day899.Join语句优化 -MySQL实战

Join语句优化 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于Join语句优化的内容。 join 语句的两种算法&#xff0c;分别是 Index Nested-Loop Join(NLJ) 和 Block Nested-Loop Join(BNL)。 发现在使用 NLJ 算法的时候&#xff0c;其实效果还是不错的&#xff0c…

【手把手一起学习】(五) Altium Designer 20 STM32核心板Demo----PCB封装库添加元件

1 PCB封装库添加元件 元件的PCB封装非常重要&#xff0c;关系到实际电子元件能否焊接到制作的电路板上。PCB封装的引脚顺序&#xff0c;引脚间距&#xff0c;焊盘大小&#xff0c;焊盘形状等都需要与元件实物严格对应&#xff0c;因此绘制PCB封装库时&#xff0c;需要参考元件…

在Windows上编译Nginx

《在Windows上编译Nginx》视频教程官方编译说明 Building nginx on the Win32 platform with Visual C 环境准备 1. Microsoft Visual Studio(Microsoft Visual C 编译器)&#xff0c;下载地址&#xff1a;https://visualstudio.microsoft.com/zh-hans/。 2. Git(备用)&…

OSS存储使用之centOS系统ossfs挂载

以CentOS7系统为例 下载CentOS系统支持的ossfs工具的版本&#xff0c;以下载CentOS 7.0 (x64)版本为例&#xff0c;可以通过wget命令进行安装包的下载 wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos7.0_x86_64.rpm 也可以通过yum命令来进行安装包的下载 sud…

【网络原理9】HTTP响应篇

在前两篇文章当中&#xff0c;已经分别介绍了HTTP是什么&#xff0c;以及常见的请求头当中的属性。【网络原理7】认识HTTP_革凡成圣211的博客-CSDN博客HTTP抓包&#xff0c;Fiddler的使用https://blog.csdn.net/weixin_56738054/article/details/129148515?spm1001.2014.3001.…

excel格式调整:表格应用中格式刷技法汇总

格式刷很简单&#xff0c;点一下&#xff0c;就可以把格式复制到其他单元格、图形、文字上。但是格式刷的用法又不仅仅这么一点&#xff0c;它还可以实现快速隔行填色、隔行隐藏&#xff0c;实现“无损”合并单元格等。在excel中&#xff0c;位于开始菜单中左侧的格式刷&#x…

澜沧古茶再冲刺港交所上市:多项核心指标下滑,杜春峄为董事长

近日&#xff0c;普洱澜沧古茶股份有限公司&#xff08;下称“澜沧古茶”&#xff09;向港交所主板提交上市申请&#xff0c;中信建投国际、招商证券国际为其联席保荐人。据贝多财经了解&#xff0c;这已经是澜沧古茶第二次在港交所递表&#xff0c;此前曾于2022年5月30日在港交…

不同方案特性对比

特性对比项 2.4G 蓝牙 868M WIFI 通信速率 低 低 低 高 距离&#xff08;实用可靠&#xff09; 20米 10米 30米 15米 确定性 高 低 高 高 可靠性&#xff08;距离内&#xff09; 高 低 高 高 刷新一个标签时间&#xff08;通常&#xff09; 0.5-1s …

西北工业大学大学物理(I)下2019-2020选填考题解析

单选题12个&#xff0c;24分。1量子数考查前三个量子数由薛定谔方程决定&#xff0c;最后一个关于自旋的由狄拉克方程决定由这些量子数可以给出原子的壳层结构。考试其实考的不深&#xff0c;记住这个表就够了。2 书上18、19章量子物理的著名实验&#xff1a;光电效应&#xff…

如何安装和使用oecp工具?

运行环境&#xff1a;python3>3.7.9、sqlite>v3.7.17 下载安装与部署的要求&#xff1a; install abidiff (centos): yum install -y epel-release; yum install -y libabigail install createrepo: yum install -y createrepo install binutils: yum install -…

【Redis】初探Redis

【Redis】初探Redis 前言 很早之前写的文章&#xff0c;最近考虑到面试可能涉及到Redis&#xff0c;所以拿出来再看一遍 Redis概述 Redis是啥&#xff1f; Redis是Remote Dicitionary Server的缩写&#xff0c;翻译过来就叫做远程字典服务 是开源的、使用C完成的、支持网路…

推荐算法——NCF知识总结代码实现

NCF知识总结代码实现1. NeuralCF 模型的结构1.1 回顾CF和MF1.2 NCF 模型结构1.3 NeuralCF 模型的扩展---双塔模型2. NCF代码实现2.1 tensorflow2.2 pytorchNeuralCF&#xff1a;如何用深度学习改造协同过滤&#xff1f; 随着技术的发展&#xff0c;协同过滤相比深度学习模型的…

学习资料|常用的一些CMD运行命令,整理的比较齐全

CMD命令CMD命令&#xff1a;开始&#xff0d;>运行&#xff0d;>键入cmd或command&#xff08;在命令行里可以看到系统版本、文件系统版本&#xff09;appwiz.cpl&#xff1a;程序和功能calc&#xff1a;启动计算器certmgr.msc&#xff1a;证书管理实用程序charmap&#…

持续集成Jenkins (五)Jenkins API的使用(更新中)

前言目前&#xff0c;我们将要上线DevOps系统&#xff0c;面对未来可能需要对系统的二次开发和处于对系统的深入理解&#xff0c;我需要对Jenkins API有个比较熟悉的了解。在DevOps中&#xff0c;jenkins总是作为其中的一环集成到里面&#xff0c;它提供了几种语言的API,可以很…

如何在Wordpress中使用wp_nav_menu()在<li>及a标记中添加Class

我正在使用wp_nav_menu($args),我想将my_own_classCSS类名添加到<li>元素中以获得以下结果:<li classmy_own_class><a href>Link</a>怎么做&#xff1f;wp_nav_menu()在<li>标记中添加Class方法一&#xff1a;只需使用其他参数并为nav_menu_css_…

熟悉GC常用算法,熟悉常见垃圾收集器,具有实际JVM调优实战经验

程序的栈和堆 栈先进后出&#xff0c;且里面的数据自动释放&#xff0c; 堆内的空间则需要手动释放 java python go 只管创建&#xff0c;不用像c,c需要手动释放空间&#xff0c; 因为他们都会开一个进程GC&#xff08;Garbage Collector&#xff09;&#xff0c;由垃圾回收…

从早吃到晚,才是我对旅行目的地最大的尊重

点击文末“阅读原文”即可收听本期节目剪辑、音频 / 卷圈 编辑 / SandLiu 卷圈 监制 / 姝琦 文案 / 粒粒 封面 / midjourney 产品统筹 / bobo 场地支持 / 声湃轩北京录音间摊牌吧&#xff0c;承认吧&#xff0c;有些地方&#xff0c;你就是冲着吃东西才去的&#xff0c;旅…

【python】main方法教程

嗨害大家好鸭&#xff01; 我是小熊猫~ 首先 if name "main": 可以看成是python程序的入口&#xff0c; 就像java中的main&#xff08;&#xff09;方法&#xff0c; 但不完全正确。 事实上python程序是从上而下逐行运行的&#xff0c; 在.py文件中&#xff0c; 除…