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

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

背景

上一篇文章我们讲述了微信小程序的页面结构,一个小程序也旺往往包含四个文件page.json是用于页面的配置,page.wxml定义了页面结构,page.wxss定义了页面的样式,page.js则定义了与用户的交互方式,这篇文章将会讲述微信小程序的运行环境。

宿主环境

不同于Android应用和iOS应用直接运行于Andorid系统和iOS系统,微信小程序运行在微信提供的宿主环境中,由于微信已经替我们抹平了不同平台的差异,所以微信小程序能够实现跨平台,且能够实现很多普通网页无法实现的功能。我们将以之前建立的Test项目为例介绍一下微信小程序的运作过程。

我们来简单了解下小程序的运行环境。小程序的运行环境分成渲染层和逻辑层,其中 WXML 模板和 WXSS 样式工作在渲染层,JS 脚本工作在逻辑层。小程序的渲染层和逻辑层分别由2个线程管理:渲染层的界面使用了WebView 进行渲染;逻辑层采用JsCore线程运行JS脚本。一个小程序存在多个界面,所以渲染层存在多个WebView线程,这两个线程的通信会经由微信客户端(下文中也会采用Native来代指微信客户端)做中转,逻辑层发送网络请求也经由Native转发,小程序的通信模型下图所示。

小程序的启动过程

微信客户端在打开小程序之前,会把整个小程序的代码包下载到本地。紧接着通过 app.json 的 pages 字段就可以知道你当前小程序的所有页面路径,我们新建的test项目的pages字段内容如下,可以知道test项目包含两个页面index和logs,由于没有通过entryPagePath指定启动页,所以会默认pages字段的第一个页面也就是index页面为启动页。

 "pages":[
    "pages/index/index",
    "pages/logs/logs"
  ]

于是微信客户端就把首页的代码装载进来,通过小程序底层的一些机制,就可以渲染出这个首页。小程序启动之后,在 app.js 定义的App实例的onLaunch回调会被执行,整个小程序只有一个 App 实例,是全部页面共享的,每个小程序都需要在 app.js 中调用 App 方法注册小程序实例,绑定生命周期回调函数、错误监听和页面不存在监听函数等,其包含的监听函数如下:

// app.js
App({
  onLaunch (options) {
    // 生命周期回调——监听小程序初始化。
  },
  onShow (options) {
    // 生命周期回调——监听小程序启动或切前台。
  },
  onHide () {
    // 生命周期回调——监听小程序切后台。
  },
  onError (msg) {
  //错误监听函数。
    console.log(msg)
  },
  globalData: 'I am global data'
})

小程序页面渲染

其大致的过程如下,可以观察到 pages/logs/logs 下其实是包括了4种文件的,微信客户端会先根据logs.json配置生成一个界面,顶部的颜色和文字你都可以在这个json文件里边定义好。紧接着客户端就会装载这个页面的 WXML 结构和 WXSS 样式。最后客户端会装载 log.js。

Page({
  data: {  //参与页面渲染的数据
    logs: []
  },
  onLoad() {
  //页面渲染后执行
    this.setData({
      logs: (wx.getStorageSync('logs') || []).map(log => {
        return {
          date: util.formatTime(new Date(log)),
          timeStamp: log
        }
      })
    })
  }
})

Page 是一个页面构造器,这个构造器就生成了一个页面。在生成页面的时候,小程序框架会把 data 数据和 index.wxml 一起渲染出最终的结构,于是就得到了你看到的小程序的样子。在渲染完界面之后,页面实例就会收到一个 onLoad 的回调,你可以在这个回调处理你的逻辑。

对于小程序中的每个页面,都需要在页面对应的 js 文件中进行注册,指定页面的初始数据、生命周期回调、事件处理函数等。

//index.js
Page({
  data: {
    text: "This is page data."
  },
  onLoad: function(options) {
    // 页面创建时执行
  },
  onShow: function() {
    // 页面出现在前台时执行
  },
  onReady: function() {
    // 页面首次渲染完毕时执行
  },
  onHide: function() {
    // 页面从前台变为后台时执行
  },
  onUnload: function() {
    // 页面销毁时执行
  },
  onPullDownRefresh: function() {
    // 触发下拉刷新时执行
  },
  onReachBottom: function() {
    // 页面触底时执行
  },
  onShareAppMessage: function () {
    // 页面被用户分享时执行
  },
  onPageScroll: function() {
    // 页面滚动时执行
  },
  onResize: function() {
    // 页面尺寸变化时执行
  },
  onTabItemTap(item) {
    // tab 点击时执行
    console.log(item.index)
    console.log(item.pagePath)
    console.log(item.text)
  }
})

Behavior

页面可以引用 behaviors 。 behaviors 可以用来让多个页面有相同的数据字段和方法。

// my-behavior.js
module.exports = Behavior({
  data: {
    sharedText: 'This is a piece of data shared between pages.'
  },
  methods: {
    sharedMethod: function() {
      this.data.sharedText === 'This is a piece of data shared between pages.'
    }
  }
})
// page-a.js
var myBehavior = require('./my-behavior.js')
Page({
  behaviors: [myBehavior],
  onLoad: function() {
    this.data.sharedText === 'This is a piece of data shared between pages.'
  }
})

Component

Page 构造器适用于简单的页面。但对于复杂的页面, Page 构造器可能并不好用。此时,可以使用 Component 构造器来构造页面。 Component 构造器的主要区别是:方法需要放在 methods: { } 里面。

Component({
  data: {
    text: "This is page data."
  },
  methods: {
    onLoad: function(options) {
      // 页面创建时执行
    },
    onPullDownRefresh: function() {
      // 下拉刷新时执行
    },
    // 事件响应函数
    viewTap: function() {
      // ...
    }
  }
})

最后

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

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

相关推荐

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

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

lumutong的博客 1483

微信小程序基础知识总结

一、页面文件 小程序中的页面文件分为四个,index.wxml、index.wxss、index.js和 index.json index.wxml 是布局文件,index.wxss 是样式文件,index.js 是逻辑文件, index.json 是配置文件 页面级别的配置会覆盖全局级别的配置 小程序全局通用配置文件只有 app.wxss、app.js和app.json文件,app.wxml文件没有 小程序页面级别配置文件有index.js、index.json、index.wxml和index.wxs

浮生离梦的博客 2287

LeRobot 入门教程(十四)Meta-World 机器人多任务与元强化学习操作仿真基准平台

Meta-World是一个开源机器人操作模拟基准平台,专注于多任务与元强化学习研究。该平台提供50项多样化任务(MT50套件),采用标准化评估协议测试算法泛化能力。LeRobot平台支持Meta-World任务评估,提供预处理数据集和训练工具。用户可通过命令行快速训练SmolVLA策略,并评估模型在简单、中等、困难等不同难度任务上的表现。文章还提供了兼容性问题和实用技巧建议,如使用完整MT50任务集测试泛化能力、采用one-hot任务条件化等。这些资源为研究人员开展机器人多任务学习提供了标准化实验环境。

2506_90492529的博客 1022

第二章:微信小程序开发基础

在Page()函数的参数中,可以定义当前页面的生命周期函数。页面的生命周期函数主要有onLoad、onShow、onReady、onHide、onUnload。onLoad页面加载函数。当页面加载完成后调用该函数。一个页面只会调用一次。该函数的参数可以获取wx.navigateTo和wx.redirectTo及中的 query。onShow 页面显示函数。当页面显示时调用该函数。每次打开页面都会调用一次。onReady 页面数据绑定函数。

m2049626666的博客 2341

Windows Docker Desktop部署MaxKB详细教程

MaxKB(Max Knowledge Base)是一款基于大语言模型(LLM)和检索增强生成(RAG)技术的开源知识库问答系统,旨在帮助企业、教育机构及研究组织高效管理知识并提供智能问答服务。

猿小白的博客 1376

080、多轴运动控制:插补器设计(螺旋线插补)

本文分享了螺旋线插补器设计的实战经验。针对五轴点胶机Z轴抖动问题,作者分析了螺旋线数学本质,提出基于归一化时间参数的速度规划方法,强调各轴严格同步的重要性。文章详细介绍了速度分解、加减速处理、嵌入式优化技巧(查表法、定点化),并总结了起点闭合、速度波动、数值处理等常见问题解决方案。最后给出5条实用建议:注重速度规划而非纯数学推导、预先仿真、保留调试接口、考虑机械谐振、防范编码器丢脉冲。通过优化插补周期、电子齿轮比和S形速度曲线,成功将设备良率从60%提升至95%。

m0_50546716的博客 88

微信小程序开发--习题

2021 微信小程序开发(河北经贸大学) 章节测试答案 第1周 初识微信小程序 第1周 单元测验 1、 问题:注册微信小程序账号的网址是( ) 选项: A: https://www.weixin.qq.com B:https://mp.weixin.qq.com C:https://ap.weixin.qq.com D:https://xcx.weixin.qq.com 答案: 【https://mp.weixin.qq.com】 2、 问题:查看AppID的位置是在“开发”项目中的( ) 选项: A:

桑桑和阿战 9026

一篇文章足够你学习Bluez,提供史上最全的Bluez教程,让你告别Bluez从入门到放弃

Bluez是真的难,说“入门到放弃”真的毫不夸张,Bluez的学习曲线陡峭,要求对Linux 系统/驱动概念、D-Bus 通信和蓝牙协议都有要求,加上网络上其实没有一个完整的介绍Bluez系列的文档,所以不管是蓝牙初学者还是蓝牙从业人员,都有不小的难度。

朝气蓬勃 2543

Java分页查询Page构造器

Java分页查询Page构造器

真正的大师永远怀着一颗学徒的心 3464

联想开天N70z/N79Z G1d笔记本Win驱动下载

本文介绍了联想开天N70Z/N79Z G1d笔记本在Win11系统下的驱动安装方法。提供了WiFi网卡驱动(RealtekWlan)和显卡驱动(ZX C960 GPU)的详细安装步骤,包括手动更新驱动和卸载流程。驱动安装后成功支持5G WiFi连接并正确识别显卡型号。文中附有系统信息和安装效果截图,同时提供了官方驱动下载地址及备用下载链接。该指南适用于需要为联想开天N70Z/N79Z G1d笔记本安装Win11驱动的用户参考。

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 3901

InVEST模型 | HAbitat quality模块计算生境质量

 本文详细介绍使用InVEST模型中HAbitat quality模块计算生境质量,包含各个参数的含义、所需数据、数据处理以及需要各个参数注意的地方等过程。

地理空间科学的博客 1万+

《微信小程序:开发入门及案例详解》—— 2.4 框架页面文件

本节书摘来自华章出版社《微信小程序:开发入门及案例详解》一 书中的第2章,第2.4节,作者李骏 边思,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 2.4 框架页面文件 小程序中一个框架页面包含4个文件,同一框架页面的这4个文件必须具有相同的路径与文件名,进入小程序时或页面跳转时,小程序会根据app.json配置的路径找到对应的资源进行渲染。◇...

weixin_34080571的博客 1552

FPGA实现串口升级及MultiBoot(十)串口升级SPI FLASH实现

采用软核进行串口升级的原因主要有以下几点:1、官方推荐:官方以前也推出了针对逻辑进行升级的程序《XAPP1081_QuickBoot》,但是从今年起(2024年)官方就停止更新相关例程了(详见下面截图),所以采用官方推荐的软核更新;2、简单并具有通用性:针对SPI或者BPI官方都有相关的IP,可应对市场上80%以上的FLASH,并且官方IP通用性极强,只需要修改几个参数就可以对不同厂家的芯片进行升级操作;

OpenFPGA的博客 2001

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

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

GitChat 34万+

【算能】TPU(张量处理单元)的深度解析

算能(SOPHGO)作为国产AI芯片领域的核心企业,其TPU(张量处理单元)以高能效比与全场景覆盖能力为核心竞争力,专注于边缘计算与行业垂直领域的AI推理加速。

浩瀚之水的专栏 1550

jre9下载 jdk9

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

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

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

大力哥的博客 16万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

微信小程序开发入门教程

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

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

微信小程序从零开始开发步骤(四)

上一章节,实现了小程序的底部导航的功能,这一节开始实现一些简单的功能。本章节介绍的是小程序的自定义分享的功能。可以分享小程序的任何一个页面给好友或群聊。注意是分享给好友或群聊,并没有分享到朋友圈。一方面微信在尝试流量分发方式,但同时又不愿意开放最大的流量入口。开发文档:https://mp.weixin.qq.com/debug/wxadoc/dev/a...

祈澈菇凉 1903

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

小程序入门保姆级教程

叶子的博客 8921

微信小程序入门教程之四:API 使用

微信小程序入门教程之四:API 使用 作者: 阮一峰 日期: 2020年11月 2日 今天是这个系列教程的最后一篇。 上一篇教程介绍了,小程序页面如何使用 JavaScript 脚本。有了脚本以后,就可以调用微信提供的各种能力(即微信 API),从而做出千变万化的页面。本篇就介绍怎么使用 API。 所有示例的完整代码...

MichaelAn的博客 363

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

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

陈橘又青的博客 2万+

微信小程序开发环境搭建

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

zcs2312852665的博客 6262

微信小程序入门教程

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

shykevin的博客 609

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

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

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值