微信小程序
…
规范
设计规范
友好:页面应该重点突出,流程明确。
清洗:导航明确,减少等待,异常可控。
便捷:减少输入(使用其他IO),避免误操作,操作流程。
同一:视觉统一。
运营规范
账号信息:描述(主要,用户搜索根据)
服务类目:类目与内容一致(体验良好)
功能:完整,无搜索推荐,不互推
内容:禁止诱导,不可营销与广告为主,禁止测试类,游戏(有专门的微信小游戏)
数据:获取用户数据需告知
开发
从微信开发者页面下复制AppID到开发工具中,并取消使用快速模板。
此时项目中只有project.config.json
文件,需要创建app.json
文件,用作启动文件。
文件结构
一个小程序分为一个APP和多个Page。App又分为逻辑,公共配置,公共样式表三个文件(app.js, app.json, app.wxss),每Page分为逻辑,结构,样式表,配置(js, wxml, wxss, json)。
渲染层 Webview
逻辑层 JsCore
微信客户端 Native:负责网络接口
因此项目结构为
- project.config.json
- app.js
- app.json
- app.wxss
- images
- pages
- about
- about.js
- about.wxml
- about.wxss
- about.json
- about
APP入口 app.json
1 | { |
页面逻辑 about.js
1 | // 注册页面对象 |
页面配置 about.json
1 | { |
页面结构 about.wxml
1 | <text class="info">Hello</text> |
页面样式 about.wxss
1 | .info { |
组件
通用属性:
class, id, style, bindtap, hidden, data-*
View
页框。
作用同div。
Image
图像。
属性:
src: 可以用绝对或相对路径
Text
文本。
Navigator
导航。可以实现跳转。不可被text包含。默认为块级元素。
属性:
url:目标页可用绝对路径
open-type:redirect,重定向;默认navigate,可返回;switchTab,一级页面切换
hover-class:按住效果
布局
传统方法
1 | .container { |
弹性盒子布局
从上往下:
1 | .container{ |
响应式单位
1 | .about-banner{ |
数据绑定
各个层次(渲染,逻辑等)有不同的进程,之间通过数据绑定和事件机制通信。
在页面对象中可以定义数据:
1 | // 要绑定的数据 |
绑定数据到前端。
1 | <text>{{count}}</text> |
条件渲染
1 | 重新渲染 |
列表渲染
1 | <view wx:for="{{x_list}}"> |
轮播
1 | 是否显示底部指示器 |