详解微信小程序开发中的“数据绑定”和代码样例

这篇具有很好参考价值的文章主要介绍了详解微信小程序开发中的“数据绑定”和代码样例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

首先需要区分微信小程序的运行环境和框架系统。运行环境为小程序在手机当中运行的时候,微信客户端所能提供的环境支持,也就是在这种环境下如何进行数据渲染工作;框架系统则是微信小程序在进行开发的过程中,如何通过代码实现数据绑定,以及在这种框架下,是如何进行层级划分。

框架系统 - 逻辑层和视图层

整个小程序框架系统分为两部分:逻辑层(App Service)和 视图层(View)。小程序提供了自己的视图层描述语言 WXML 和 WXSS,以及基于 JavaScript 的逻辑层框架,并在视图层与逻辑层间提供了数据传输和事件系统,让开发者能够专注于数据与逻辑。

运行环境 - 逻辑层和渲染层

小程序的运行环境分成渲染层和逻辑层,其中 WXML 模板和 WXSS 样式工作在渲染层,JS 脚本工作在逻辑层。

小程序的渲染层和逻辑层分别由2个线程管理:渲染层的界面使用了WebView 进行渲染;逻辑层采用 JsCore 线程运行 JS 脚本。一个小程序存在多个界面,所以渲染层存在多个 WebView 线程,这两个线程的通信会经由微信客户端(下文中也会采用 Native 来代指微信客户端)做中转,逻辑层发送网络请求也经由 Native 转发,小程序的通信模型下图所示。
详解微信小程序开发中的“数据绑定”和代码样例

数据绑定:渲染层和逻辑层的通信

通过上述的介绍,我们可以简单理解为:逻辑层为视图层提供数据,而将这些数据渲染从逻辑层显示到视图层的过程称之为渲染,那么为渲染层工作的由wxml 和 wxss进行;而为逻辑层工作的为由js编写的代码。而上述进行渲染的过程就需要进行数据的绑定。

框架的核心是一个响应的数据绑定系统,可以让数据与视图非常简单地保持同步。当做数据修改的时候,只需要在逻辑层修改数据,视图层就会做相应的更新。

下面来看一个简单的代码样例:

代码样例

1)视图层的数据初始化
比如在pages里面当前只有一个页面index,在index.js中(逻辑层)的数据对象data,有一个数据msg ,其初始化为一个字符串。
详解微信小程序开发中的“数据绑定”和代码样例
然后在视图层通过双层大括号(Mustache语法:mustache 是“胡子”的意思,因为它的嵌入标记 {{ }} 非常像胡子。 {{ }} 的语法也被 vue 沿用)来进行数据渲染和展示:
详解微信小程序开发中的“数据绑定”和代码样例
当启动小程序的时候,就会将数据自动渲染到页面中:
详解微信小程序开发中的“数据绑定”和代码样例
这样,逻辑层的数据就和视图层的变量进行了双向绑定。也就是说:’ WXML 中的动态数据均来自对应 Page 的 data’ 。
通过调试器的AppData 可以查看每个页面所绑定的数据:
详解微信小程序开发中的“数据绑定”和代码样例

2)数据的修改和动态响应
和大部分前端框架,比如React和Vue,都是响应式框架,当数据在逻辑层进行修改之后,数据会同步渲染到视图层的界面上。
比如:在index.js 的页面实例生命周期的钩子函数中:比如onLoad(), onReady() 等:
详解微信小程序开发中的“数据绑定”和代码样例
这里再onLoad回调函数中,首先打印msg数据,但是如何去获取msg呢?我们使用this对象(当前页面的实例对象)。
通过console打印出的this对象为:
详解微信小程序开发中的“数据绑定”和代码样例
我们可以看到this 对象中包含data数据。所以我们可以直接通过:
console.log(this.data.msg);
直接获取msg数据:
详解微信小程序开发中的“数据绑定”和代码样例
同步修改数据:
详解微信小程序开发中的“数据绑定”和代码样例
通过setData() 函数来进行数据的修改,修改之后的数据会同步渲染到视图层的界面上:

详解微信小程序开发中的“数据绑定”和代码样例

3)非钩子函数也可进行数据的同步修改
在这里,设置了一个定时函数,两秒后就会自动更新界面中的数据。
详解微信小程序开发中的“数据绑定”和代码样例
因为操作的都是this对象,所以会进行同步更新。

总结

微信小程序开发中的一大核心就是数据的绑定和渲染,如果对这一部分充分理解,后面的代码开发将会变得顺利很多,加油!文章来源地址https://www.toymoban.com/news/detail-504392.html

到了这里,关于详解微信小程序开发中的“数据绑定”和代码样例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 微信小程序开发|宿主环境详解

    🖐 本节学习目标: ✅深入了解小程序的宿主环境组成 手机微信是小程序的宿主环境, 小程序借助宿主环境提供的能力,可以实现许多普通网页不能完成的功能。例如:小程序调用微信提供的API实现扫码,支付等功能。 小程序的宿主环境包含的内容: 通信模型 运行机制 组

    2024年02月09日
    浏览(70)
  • 【微信小程序开发】开发框架与工具的使用详解

    本文以微信小程序为例介绍了小程序开发框架与工具的使用,通过本文的阅读,相信大家能够简单了解小程序开发的基本流程和常用工具,从而快速上手小程序开发。 1.1 小程序开发框架 小程序开发框架是一套用于快速构建小程序的开发框架,提供了丰富的组件和API,使得开

    2024年02月14日
    浏览(28)
  • 【拼图】拼图游戏-微信小程序开发流程详解

    还记得小时候玩过的经典拼图游戏吗,上小学时,在路边摊用买个玩具,是一个正方形盒子形状,里面装的是图片分割成的很多块,还差一块,怎么描述好呢,和魔方玩具差不多,有没有听说叫二维的魔方,这里用小程序把它实现,有感兴趣的同学可以来看看 此文章适合新手

    2024年02月09日
    浏览(30)
  • 【十字绣】传统手艺-微信小程序开发流程详解

    还记得小时候看过母亲的十字绣吗,易学易懂,就是用专用的绣线和十字格布,通过平面坐标计找出位置,对照专用的图案进行刺绣,可作出心中所想的画,奈何所需材料成本不小,这里用小程序简单模拟十字绣,喜欢的话可用它练习一下。 打开微信开发工具,选择小程序,

    2024年02月07日
    浏览(21)
  • 微信小程序开发中的麦克风录音和音频上传

    微信小程序开发中,麦克风录音和音频上传非常常见。下面将详细介绍如何使用微信小程序开发工具进行麦克风录音和音频上传。 一、麦克风录音 首先在wxml文件中添加一个录音按钮,用于触发录音操作:   然后在js文件中定义startRecord事件,用于开始录音:

    2024年02月04日
    浏览(37)
  • 【微信小程序开发】第 5 节 - 小程序代码的构成

            欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、了解项目的基本组成结构 3、小程序页面的组成部分  4、JSON 配置文件 4.1、json 配置文件的作用 4.2、app.json 文件 4.3、project.config.json 文件 4.4、

    2024年02月08日
    浏览(26)
  • 【微信小程序开发】一文带你详解小程序组件和 API 的使用

    在小程序开发中,组件和API是非常重要的部分,它们可以帮助我们构建丰富的用户界面和实现各种功能。本文将介绍小程序中常用的组件和API,并提供相应的代码示例。 小程序的组件是构建用户界面的基本元素。它们可以用于展示数据、接收用户输入、实现交互等。 下面是

    2024年02月12日
    浏览(38)
  • 【小程序开发必备】微信小程序常用API全介绍,附示例代码和使用场景

    ✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入:全栈弄潮儿的个人社区 📙 专栏地址:小程序从入门到精通 【分享几个国内免费可用的ChatGPT镜像】 【10几个类ChatGPT国内AI大模型】 【用《文心一言》1分钟写一篇博客简直yyds】

    2023年04月09日
    浏览(31)
  • 关于微信小程序中的数据双向绑定如何实现

    前言 官方文档:微信小程序双向绑定语法 在 WXML 中,普通的属性的绑定是单向的。例如: 如果使用 this.setData({ value: ‘leaf’ }) 来更新 value ,this.data.value 和输入框的中显示的值都会被更新为 leaf ;但如果用户修改了输入框里的值,却不会同时改变 this.data.value 。 如果需要在

    2024年02月05日
    浏览(42)
  • 微信小程序背景渐变写法加占比以及微信小程序开发过程中长使用的代码段

    在写微信小程序的过程中,ui设计了一个渐变的背景图,网上一搜很多都只写了怎么样让微信渐变色,但是我的需求就是渐变色而且控制渐变色范围,比如三个颜色一个头部是深蓝,中间浅蓝,最底下是白色,那么直接套用网上的列子(第一段代码),三个色渐变范围是一样

    2024年01月17日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包