Skip to content

开发基础 ​

页面组件(WXML) ​

小程序中使用 来实现页面结构。

1. 常见页面组件(标签) ​

标签功能标签功能
<view>视图容器<icon>图标文件
<text>文本域<checkbox>复选框
<button>按钮<radio>单选框
<image>图片<input>输入框
<form>表单<progress>进度条

2. <include> 标签 ​

在wxml 文件中,可以使用 标签引用其他文件中的代码()。

  • 当一个wxml 页面中的代码过多时,利用\<include> 将代码拆分到多个文件中,方便查找代码。
  • 当多个wxml 页面中有相同的部分时,可以将公共部分抽离出来,保存到单独的wxml 文件中,再通过\<include> 引入,减少重复代码。

页面样式(WXSS) ​

WXSS(WeiXin Style Sheets) 用于描述 WXML 的组件样式。WXSS 具有 CSS 大部分特性。

1. 尺寸单位 ​

微信小程序在 WXSS 中加入了新的尺寸单位 rpx(responsive pixel,响应式像素)。

为了方便换算,rpx 单位规定了任何手机屏幕的宽度都为 750rpx(逻辑像素),由小程序内部负责将逻辑像素转换成当前手机中的物理像素。

2. 样式导入 ​

在 WXSS 中可以使用 语句导入外联样式表。

CSS
@import index.css;

3. 全局样式 ​

可以在项目根目录下创建全局样式文件,将公共样式卸载全局样式文件中。

配置文件(*.json) ​

页面配置分为页面级和应用级,pages 目录下的页面均可以使用 json 文件对页面效果进行配置,而 app.json 是应用级配置文件。

1. 页面级配置文件 ​

在页面级配置文件中,可以修改页面的导航样式,控制页面是否允许上下滚动等。

属性说明
navigationBarBackgroundColor导航栏背景颜色,默认为#000000
navigationBarTextStyle导航栏标题颜色,仅支持 black、white(默认)
navigationBarTitleText导航栏的标题内容
backgroundColor窗口的背景颜色,默认为#ffffff
backgroundTextStyle下拉 loading 的样式,仅支持 dark(默认)、light
enablePullDownRefresh是否全局开启下拉刷新,默认为 false
onReachBottomDistance页面上拉触底事件触发时距页面底部距离(单位 rpx),默认 50
disableScroll默认为 false。设置为 true 时,页面整体不能上下滚动

2. 应用级配置文件 ​

项目根目录下的 app.json 为应用级配置文件。

属性说明
pages页面路径列表
window全局默认窗口表现
tabBar底部 tab 栏的表现
networkTimeout网络超时时间
debug是否开启调试模式,默认为 false
requireBackgroundModes需要在后台使用的能力,如音乐播放
plugins使用到的插件

实例

JSON
{
  "pages": [
    "pages/index/index",
    "pages/logs/logs",
    "pages/form/form"
  ],
  "window": {
    "navigationBarTitleText": "比较两个数字大小",
    "navigationBarBackgroundColor": "#369"
  },
  "networkTimeout": {
    "request": 30000
  },
  "debug": true
}

页面逻辑(*.js) ​

页面逻辑分为页面级和应用级,pages 目录下的页面均可以使用 js 文件对页面逻辑进行控制,而 app.js 是应用级页面逻辑文件。

1. 页面逻辑文件 ​

JS
// pages/index/index.js
Page({
    // 页面初始化数据
    data: {},
    // 生命周期函数
    onLoad: function(options) {},
})

页面逻辑通过 函数来注册一个页面,通过该对象可以指定页面的初始数据、生命周期函数、事件处理函数等。

属性类型说明
dataObject页面的初始数据
onLoadFunction生命周期回调函数,监听页面加载,一个页面只会触发一次
onReadyFunction生命周期回调函数,监听页面初次渲染完成,一个页面只会触发一次,可交互
onShowFunction生命周期回调函数,监听页面显示,例:从后台切入前台时触发
onHideFunction生命周期回调函数,监听页面隐藏,例:从前台切入后台时触发
onUnloadFunction生命周期回调函数,监听页面卸载,例:使用 和
onPullDownRefreshFunction页面事件处理函数,监听用户下拉动作
onReachBottomFunction页面事件处理函数,监听上拉触底
onShareAppMessageFunction页面事件处理函数,用户单击右上角的分享按钮
onPageScrollFunction页面事件处理函数,页面滚动会连续触发
其他Any开发者可以添加任意的函数或者数据,在页面的函数中可以通过 来访问

2. 组件事件处理函数 ​

对比 e.target 和 e.currentTarget ​

  • e.target 获取的是子元素的属性值集合
  • e.currentTarget 获取的是父元素的属性值集合

常用冒泡事件 ​

事件类型触发条件
touchstart手指触摸动作开始
touchmove手指触摸后移动
touchcancel手指触摸动作被打断,如来电提醒、弹窗
touchend手指触摸动作结束
tap手指触摸后马上离开
longpress手指触摸后,超过 350ms 再离开。如果指定了事件回调函数并触发了这个事件,tap 事件将不会被触发

事件绑定与冒泡 ​

为组件绑定事件有两种方式,bind 事件绑定、catch 事件绑定。

  • bind 事件绑定特点是,不会阻止冒泡事件向上冒泡
  • catch 事件绑定特点是,可以阻止冒泡事件向上冒泡

3. 应用级逻辑(注册程序) ​

在项目根目录下 app.js 文件中可以使用 App() 函数来实现注册小程序,以及小程序启动、显示、隐藏等操作。

JS
// app.js
App({
    // 生命周期回调函数,小程序初始化完成时触发,全局只执行一次
    onLaunch: function(options) {},
    //
    onShow: function(options){},
    //
    onHide: function(options){},
    // 错误监听函数,小程序发生脚本错误,或API 调用失败时触发
    onError: function(error){},
    // 页面不存在监听函数
    onPageNotFound: function(options) {},
})

利用 App() 函数还可以保存一些所有页面中的共享数据,页面中可以通过 获取小程序实例后拿到这些共享数据。

js
// app.js
App({
  txt: "hello world",
});
// pages/index/index.js
Page({
  onReady() {
    const app = getApp();
    console.log(app.txt); // 'hello world'
  },
});

Released under the MIT License.