③ 小程序的代码组成

1 JSON配置
- JSON 用于做静态配置。
小程序配置 app.json
app.json
是当前小程序的全局配置
配置项 pages
字段
- 描述当前小程序所有页面路径
配置项 window
字段
- 定义小程序所有页面的顶部背景颜色、文字颜色等
2 WXML模板
WXML
是小程序框架设计的一套标签语言,结合小程序的基础组件、事件系统,可以构建出页面的结构。
2.1 数据绑定
1. WXML 通过 {{变量名}}
来绑定 WXML 文件和对应的 js 文件中的 data
对象属性
<!-- { time: (new Date()).toString() } -->
<text>当前时间:{{time}}</text>
2. 属性值也可以动态的去改变,有所不同的是,属性值必须被包裹在 双引号
中
<!-- 正确的写法 -->
<text data-test="{{test}}"> hello world</text>
<!-- 错误的写法 -->
<text data-test={{test}}> hello world </text >
3. 没有被定义的变量或者是被设置为 undefined
的变量不会被同步到 wxml
中
<!--
{
var2: undefined,
var3: null,
var4: "var4"
}
-->
<view>{{var1}}</view>
<view>{{var2}}</view>
<view>{{var3}}</view>
<view>{{var4}}</view>
<!--
输出:
null
var4
-->
2.2 逻辑语法
- 通过
{{ 变量名 }}
语法可以使得 WXML 拥有动态渲染的能力,除此外还可以在 {{ }} 内进行简单的逻辑运算
2.3 条件逻辑
-
使用
wx:if="{{condition}}"
来判断是否需要渲染该代码块 -
使用
wx:elif
和wx:else
来添加一个else
块 -
wx:if
是一个控制属性,需要将它添加到block
标签上
2.4 列表渲染
-
在组件上使用
wx:for
控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件 -
使用
wx:for-item
指定数组当前元素的变量名 -
使用
wx:for-index
指定数组当前下标的变量名 -
使用
wx:key
来指定列表中项目的唯一的标识符
2.5 共同属性
属性名 | 类型 | 描述 | 注解 |
---|---|---|---|
id |
String |
组件的唯一标识 | 整个页面唯一 |
class |
String |
组件的样式类 | 在对应的 WXSS 中定义的样式类 |
style |
String |
组件的内联样式 | 可以动态设置的内联样式 |
hidden |
Boolean |
组件是否显示 | 所有组件默认显示 |
data-* |
Any |
自定义属性 | 组件上触发的事件时,会发送给事件处理函数 |
bind*/catch* |
EventHandler |
组件的事件 |
3 WXSS样式
WXSS
是一套用于小程序的样式语言,用于描述WXML
的组件样式,也就是视觉上的效果
3.1 尺寸单位 rpx
小程序编译后,
rpx
会做一次px
换算。换算是以375个物理像素为基准
,也就是在一个宽度为375物理像素的屏幕下,1rpx = 1px
。
4 js脚本
小程序的主要开发语言是
js
,开发者使用js
来开发业务逻辑以及调用小程序的API
来完成业务需求



4.1 小程序的执行环境
小程序中ios9和ios10所使用的运行环境并没有完全的兼容到ES6标准,在开发工具>项目设置中,勾选ES6转ES5开启转码工具
4.2 模块化
-
浏览器中,所有
js
是在运行在同一个作用域下的,定义的参数或者方法可以被后续加载的脚本访问或者改写 -
同浏览器不同,小程序中可以将任何一个
js
文件作为一个模块,通过module.exports
或者exports
对外暴露接口 -
使用
require(path)
引入模块
4.3 脚本的执行顺序
-
浏览器中,脚本严格按照加载的顺序执行
-
小程序的执行的入口文件是
app.js
。并且会根据其中require
的模块顺序决定文件的运行顺序
4.4 作用域
-
同浏览器中运行的脚本文件有所不同,小程序的脚本的作用域同
NodeJS
更为相似 -
在文件中声明的变量和函数只在该文件中有效,不同的文件中可以声明相同名字的变量和函数,不会互相影响
当需要使用全局变量的时,通过使用全局函数
getApp()
获取全局的实例,并设置相关属性值,来达到设置全局变量的目的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)