web前端开发之微信小程序

article/2025/10/14 11:12:17

My first wechat app

小程序目录

  • My first wechat app
    • 一、微信小程序
      • 1.1 微信小程序历史
      • 1.2 环境准备
        • 1.2.1 注册账号
        • 1.2.2 获取APPID
        • 1.2.3 微信开发者工具下载地址
        • 1.2.4 创建项目
        • 1.2.5 微信开发者工具介绍
    • 二、小程序结构
      • 2.1 文件结构和web结构对比
        • 2.1.1 小程序基本配置目录
          • 2.1.1.1 新建页面
          • 2.1.1.2 window字段介绍
          • 2.1.1.3 tabBar字段介绍
        • 2.1.2 页面配置
        • 2.1.3 小程序配置文件
          • 2.1.3.1 sitemap配置(了解)
      • 三、模板语法
        • 3.1数据绑定
        • 3.2 运算
          • 3.2.1 运算符
        • 3.3 列表渲染
          • 3.3.1 wx:for
          • 3.3.2 block
        • 3.4 条件渲染
        • 4.1 小程序事件的绑定

一、微信小程序

1.1 微信小程序历史

  • 2016年1月11日,微信之父张小龙时隔多年的公开亮相,解读了微信的四大价值观。张小龙指出,越来越多产品通过公众号来做,因为这里开发、获取用户和传播成本更低。拆分出来的服务号并没有提供更好的服务,所以微信内部正在研究新的形态,叫「微信小程序」需要注意的是,之前是叫做应用号
  • 2016年9月21日,微信小程序正式开启内测。在微信生态下,触手可及、用完即走的微信小程序引起广泛关注。腾讯云正式上线微信小程序解决方案,提供小程序在云端服务器的技术方案。
  • 2017年1月9日,微信推出的"小程序"正式上线。“小程序"是一种无需安装,即可使用的手机应用”。不需要像往常一样下载App,用户在微信中"用完即走”。

1.2 环境准备

1.2.1 注册账号

https://mp.weixin.qq.com/

1.2.2 获取APPID

由于后期调用微信小程序的接口等功能,需要索取开发者的小程序中的APID,所以在注册成功后,可登录,然后获取APPID。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XdhpZTKQ-1609125711566)(C:\Users\20140\Desktop\QQ截图20201228104632.png)]

1.2.3 微信开发者工具下载地址

下载地址

在这里插入图片描述

1.2.4 创建项目

在这里插入图片描述

1.2.5 微信开发者工具介绍

在这里插入图片描述

二、小程序结构

小程序框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生APP体验的服务。

小程序框架提供了自己的视图层描述语言 wxNL和wxss,以及lavaScript,并在视图层与逻扣层间提供了数据传输和事件系统,让开发者能够专注于数据与逻辑。

2.1 文件结构和web结构对比

结构传统web微信小程序
结构HTMLWXML
样式CSSWXSS
逻辑JavaScriptJavaScript
配置JSON

2.1.1 小程序基本配置目录

  1. pages 字段——用于描述当前小程序所有页面路径,这是为了让微信客户端知道当前你的小程序页面定义在哪个目录.
  2. window字段——定义小程序所有页面的顶部背景颜色,文字颜色定义等。
2.1.1.1 新建页面

在这里插入图片描述
在app.json中找到pages新增页面即可

可调整顺序 保存之后即可新建页面

2.1.1.2 window字段介绍
"backgroundTextStyle":"dark"    --下拉刷新小圆点颜色 只支持light和dark
"navigationBarBackgroundColor": "#0094FF",  --设置导航栏颜色
"navigationBarTitleText": "我的应用",	--设置导航栏简介
"navigationBarTextStyle":"white"	 --设置导航栏文字颜色(只支持黑白)
"enablePullDownRefresh": true    --刷新功能 默认为false
"backgroundColor": "#eee"			--下拉刷新框的背景色
2.1.1.3 tabBar字段介绍

简记:底部导航

"pagePath": "pagePath",    --页面路径(要跳转的页面)
"text": "text",				--标题 底部导航的字
"iconPath": "iconPath",		--未选中状态的图标
"selectedIconPath": "selectedIconPath" 		--选中状态的图标

与“list"同级的常用属性

"color": "#0094ff",    --未选中字体颜色
"selectedColor": "#ff9400",    --选中字体颜色  只支持16进制颜色
"backgroundColor": "#ff5533",    --背景颜色
"position": "top"	--导航在上还是在下 如果在上 图标不展示

2.1.2 页面配置

作用:

  1. 能够修改页面导航栏外观
  2. 能够修改自定义属性
  3. 修改上拉 下拉菜单外观属性

页面配置很简单:

只需要吧需要的属性从window字段中复制到你需要修改的文件夹下的json文件中即可

在这里插入图片描述

2.1.3 小程序配置文件

2.1.3.1 sitemap配置(了解)

小程序根目录下的sitemap. json文件用于配置小程序及其页面是否允许被微信索引.

三、模板语法

WXML (Weixin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。

3.1数据绑定

<!--1 text相当于之前的span标签2 view 相当于之前的div标签3 checkbox就是以前的复选框
-->
<text>hello world</text>
<view>我是demo3</view>

代码示例:

Page({/*** 页面的初始数据*/data: {msg: "hello world",number: 999,isgirl: false,person: {age: 18,name: '崔云飞',height: 180},ischecked:true},
})
<!-- 1 字符串 -->
<view> {{msg}} </view>
<!-- 2 数字类型 -->
<view> {{number}} </view>
<!-- 3 布尔类型 -->
<view>{{isgirl}}</view>
<!-- 4 对象类型 -->
<text>{{person.name}}</text>
<text>{{person.age}}</text>
<text>{{person.height}}</text>
<!-- 5 在标签的属性中使用 -->
<view data-number="{{number}}">自定义属性</view>
<!-- 6 使用布尔类型充当属性 checked 字符串和花括号之间一定不要加空格 否则会导致识别失败
-->
<view><checkbox checked="{{ischecked}}"></checkbox>
</view>

3.2 运算

3.2.1 运算符
<!-- 7 运算 => 表达式1 可以在花括号中加入一些表达式2 表达式指的是一些简单 运算 数字运算 字符串 拼接 逻辑运算1 数字的加减2 字符串拼接3 三元表达式3 语句1 复杂的代码段2 switch3 do while4 for--><view>{{1+1}}</view><view>{{'1'+'1'}}</view><view>{{11%2==0 ? '偶数' : '奇数'}}</view>

3.3 列表渲染

3.3.1 wx:for
<!-- 8 列表循环1 wx:for="{{数组或者对象}}"  wx:for-item="循环项的名称"  wx:for-index="循环项的索引"2 wx:key="唯一的值" 用来提高列表渲染的性能1 wx:key 绑定一个蒲婷的字符串的时候 那么这个字符串名称 肯定是 循环数组中的 对象的 唯一属性2 wx:key ="*this" 就表示 你的数组 是一个普通数组 *this 表示是 循环箱[1,2,3,4,5]["1","23","aseff"]3 当出现 数组的嵌套循环 尤其要注意 以下绑定的名称 不要重名wx:for-item="item" wx:for-index="index"4 默认情况下 不写wx:for-item="item" wx:for-index="index"小程序也会把 循环项的名称和索引的名称 item 和index只有一层循环的话 (wx:for-item="item" wx:for-index="index") 可以省略9 对象循环1 wx:for="{{对象}}" wx:for-item="对象的值" wx:for-index="对象的属性"为了方便记忆 以及语义化2 wx:for-item="value" wx:for-index="key"-->

例子:

<view wx:for="{{list}}" wx:for-item="item" wx:for-index="index"  wx:key="id">索引:{{index}} --{{item.name}},{{item.age}}</view>
-------分割线-------<view wx:for="{{list}}" wx:key="id">索引:{{index}} --{{item.name}},{{item.age}}</view>-------------分割线-------<view wx:for="{{person}}" wx:for-item="value" wx:for-index="key" wx:key="age">:{{key}} -- 值:{{value}}</view>

我们可以看到:

在这里插入图片描述

3.3.2 block

渲染一个包含多节点的结构块block最终不会变成真正的dom元素

作用:

1 占位符标签

2 写代码的时候 可以看到标签存在

3 页面渲染时 小程序会把他移除

示例:

在这里插入图片描述

3.4 条件渲染

<!-- 11 条件渲染1 wx:if="{{true/false}}"1 if elif elsewx:if wx:elif wx:else2 hidden 隐藏1 在标签上直接加入属性hidden2 hidden="{{true}}"3 什么场景下用哪个1 当标签不频繁切换显示 使用 wx:if直接删除标签2 当标签频繁切换显示 使用 hidden通过添加样式的方式切换不能和display一起使用-->

代码示例:

<view><view>----------条件渲染----------</view><view wx:if="{{true}}">显示</view><view wx:if="{{false}}">隐藏</view><view wx:if="{{false}}">1</view><view wx:elif="{{false}}">2</view><view wx:else="{{true}}">3</view><view hidden>我会被隐藏</view><view hidden="{{false}}">我会显示</view><view hidden style="display:flex;">设置display之后会隐藏吗</view>
</view>

在这里插入图片描述

4.1 小程序事件的绑定

小程序中绑定事件,通过bind关键字来实现。如 bindtap bindinput bindchange等

不同的组件支持不同的事件,具体看组件的说明即可。

<!-- 1 需要input标签绑定 input时间绑定关键字 bindinput2 如何获取 输入框的值通过事件源对象来获取通过e.detail.value3 把输入框的值 赋值给data中不能直接赋值 如: this.detail.valuethis.setData({num:e.detail.value})4 需要加入一个点击事件1 bindtap2 无法在小程序的事件中 直接传参3 需要通过自定义属性的方式 传递参数-->

代码示例:

<input type="text" bindinput="handleInput" />
<button bindtap="handletap" data-operation="{{1}}">+</button>
<button bindtap="handletap" data-operation="{{-1}}">-</button>
<view>{{num}}
</view>
Page({data: {num:0},// 输入框中的input输入框执行逻辑handleInput(e){// console.log(e.detail.value);this.setData({num:e.detail.value})},// 加减按钮的事件handletap(e){// console.log(e)//  获取自定义属性 operationconst operation = e.currentTarget.dataset.operation;this.setData({num:this.data.num+ operation})}
})

在这里插入图片描述


http://chatgpt.dhexx.cn/article/HdvmDiV8.shtml

相关文章

如何开发微信小程序(全解过程包括前端、后端)

微信小程序开发基础知识&#xff1a; &#xff08;1&#xff09;手机的屏幕宽度的最大为750rpx&#xff08;数据与rpx连写&#xff09;&#xff1b; &#xff08;2&#xff09;ctrls 保存即可运行新写的代码&#xff1b; &#xff08;3&#xff09;新建项目的过程&#xff1a;…

前端—微信小程序开发

随着微信的普及和微小程序的广泛应用&#xff0c;微信小程序开发越来越多受到人们的关注&#xff0c;正在成为新工科和人工智能背景下当代大学生的必备技能。 适应对象 该课程适合电子信息类专业学生进行学习。 微信小程序开发课程共六章&#xff0c;通过对微信小程序开发的…

从零开始,开发一个电商微信小程序[前端+后端(c#)]

如何快速搭建一个自己的小程序。 前言:随着微信小程序的迅速发展,用户流量巨大,开发成本低等特点,现在已经成了前端工程师必会的一个技能。 目录 一、后端MVC架构创建二、创建小程序三、实现API接口操作数据四、小程序调用后端Api一、后端MVC架构

【微信小程序】基于SpringBoot开发后端

微信小程序登录流程&#xff1a; 主要步骤&#xff1a; 1、小程序端调用 wx.login()向微信接口服务获取临时登录凭证code&#xff0c;并上传至开发者服务端。 2、开发者服务端向微信服务接口服务调用 auth.code2Session 接口&#xff0c;换取用户唯一标识OpenID和会话密钥sessi…

微信小程序后端Java接口开发

微信小程序后端Java接口开发 微信小程序使用wx.request(OBJECT)来调用后端接口。 首先 我们来一个简单案例 —— helloworld实现 1、搭建一个springboot项目并引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring…

第一个web项目-微信小程序后端开发

文章目录 第一个web项目-微信小程序后端开发前言需求分析团队分工总体设计开发工具及编码实现小程序前端后端数据库接口代码 管理系统前端1.0管理系统前端2.0 测试后端本地测试前后端联合测试 部署总结 第一个web项目-微信小程序后端开发 前言 去年暑假一个偶然的机会我和几位…

微信小程序开发(后端 Java)

微信使用的开发语言和文件很「特殊」。 小程序所使用的程序文件类型大致分为以下几种&#xff1a; ①WXML (WeiXin Mark Language&#xff0c;微信标记语言) ②WXSS (WeiXin Style Sheet&#xff0c;微信样式表) ③JS (Java&#xff0c;小程序的主体) 小伙伴们有兴趣想了解…

微信小程序开发【前端+后端(java)】

前言 现在微信小程序越来越火了&#xff0c;相信不少人都通过各种途径学习过微信小程序或者尝试开发&#xff0c;作者就是曾经由于兴趣了解开发过微信小程序&#xff0c;最终自己的毕业设计也是开发一个微信小程序。所以现在用这篇博客记录我之前开发的一些经验和一些心得吧。 …

微信小程序开发前后端交互快速入门

目录 第 1 章 小程序特点 1.1 小程序特点概述 1.2 小程序配置 全局配置&#xff1a; app.json 页面配置: 页面名称.json sitemap 配置: sitemap.json 1.3 小程序框架接口 App Page 第 2 章 wxml 语法 2.1 数据绑定 初始化数据 使用数据 修改数据 2.2 事件绑定 事…

1. KVM虚拟化理论知识

基本概念 虚拟化是指在一个物理上运行多台虚拟机&#xff0c;各虚拟机之间共享cpu、内存等资源&#xff0c;但在逻辑上是相互隔离的。这样的物理机被称为是宿主机&#xff0c;各个虚拟机被称为是客户机 虚拟化的本质是资源抽象化&#xff0c;将资源最小化&#xff0c;按需使用…

KVM(Kernel-basedVirtual Machine)虚拟化技术——超详细理论+实验!!!

文章目录 一、虚拟化技术(KVM)是什么&#xff1f;1.1 KVM技术的具体作用 二、KVM技术发展2.1 虚拟化类型 三、KVM运行时的三种模式四、KVM工作原理五、KVM特性5.1 优势5.2 劣势 六、虚拟化前、后对比6.1 虚拟化前6.2 虚拟化后 七、KVM虚拟化平台实操7.1 拓扑图7.2 虚拟机资源环…

KVM虚拟化(1) | KVM简介

目录 1、kvm架构 2、架构解析 3、kvm和qemu的作用 1、kvm架构 2、架构解析 从rhel6开始使用&#xff0c;红帽公司直接把KVM的模块做成了内核的一部分。xen用在rhel6之前的企业版中默认内核不支持&#xff0c;需要重新安装带xen功能的内核KVM 针对运行在x86 硬件上的、驻留在…

KVM 虚拟化技术 | 虚拟化平台部署

KVM 虚拟化技术 一、虚拟化技术1.1 概述1.2 类型① 全虚拟化② 半虚拟化③ 直通 1.3 特点 二、KVM2.1 概述2.2 原理2.3 虚拟化架构2.4 工作流程 三、部署 KVM 虚拟化平台3.1 宿主机最低配置3.2 环境优化① 关闭 DNS 反向解析② 将镜像光盘设置为自动挂载③ 设置本地源和网络源④…

KVM虚拟化技术(理论理解以及虚拟化平台搭建步骤)

KVM虚拟化技术 文章目录 KVM虚拟化技术一、虚拟化产生背景二 、虚拟化技术简介2.1 虚拟化技术2.2 虚拟化技术发展2.3 虚拟化类型2.4 特性 三、KVM3.1 广义KVM3.2 KVM架构以及原理3.3 KVM工作流程 四、KVM虚拟化平台部署一、虚拟机资源二、实验环境三、安装KVM三、设置KVM网络四…

KVM虚拟化技术的-NUMA技术和应用

KVM虚拟化技术的-NUMA技术和应用 NUMA技术是解决多CPU共同工作的技术方案&#xff0c;多CPU共同工作主要有3中架构&#xff1a;SMP&#xff1a;Symmetric Multi-Processor)&#xff0c;非统一存储访问结构(NUMA&#xff1a;Non-Uniform Memory Access)&#xff0c;以及海量并行…

KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机

一 .KVM 简介 KVM &#xff08;名称来自英语&#xff1a; Kernel-basedVirtual Machine 的缩写&#xff0c;即基于内核的虚拟机&#xff09; &#xff0c; 是一种用于Linux内核中的虚拟化基础设施&#xff0c;可以将Linux内核转化为一个hypervisor。KVM在2007年2月被导入Linux …

KVM-虚拟化技术之Hypervisor-架构

Hypervisor 是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件&#xff0c;因此也可以看作是虚拟环境中 的“元”操作系统&#xff0c;它可以协调访问服务器上的所有物理设备和虚拟机&#xff0c;也叫 虚拟机监视器&#xff08;…

KVM虚拟化技术学习-基础入门

1.虚拟化技术概述 虚拟化[Virtualization]技术最早出现在 20 世纪 60 年代的 IBM ⼤型机系统&#xff0c;在70年代的 System 370 系列中逐渐流⾏起来&#xff0c;这些机器通过⼀种叫虚拟机监控器[Virtual Machine Monitor&#xff0c;VMM]的程序 在物理硬件之上⽣成许多可以运⾏…

KVM虚拟化技术学习-KVM管理

二&#xff0c;KVM管理 1.升级配置 1.创建一个空磁盘卷 [rootlocalhost ~]# qemu-img create -f qcow2 /kvm/images/disk2.qcow2 5G Formatting disk2.qcow2, fmtqcow2 size5368709120 encryptionoff cluster_size65536 lazy_refcountsoff 2.修改配置文件 <disk typefi…

KVM虚拟化技术原理简介

KVM KVM架构概述KVM运行时的三种模式KVM工作原理 硬件虚拟化技术1、CPU虚拟化2、内存虚拟化3、I/O虚拟化 KVM虚拟化平台部署1.虚拟机资源2.安装KVM3.设置KVM网络4.KVM部署与管理 KVM架构概述 KVM架构很简单&#xff0c;就是内核的一个模块KVM是集成到内核的hypervisorI&#x…