搭建项目
-
创建新项目(需要一个appId)
-
导入已有项目
-
小程序配置
小程序知识体系目录
不同框架都会涉及到的九个方面:
- 静态页面
- 生命周期
- 获取数据
- 渲染页面
- 绑定事件
- 路由配置页面页面跳转
- 页面传参
- 组件
- 存储(本地存储)
- 其他(小程序特有)
一、小程序静态页面
- 使用小程序组件,view相当于div,text相当与span
- 使用rpx作为单位,这个屏幕的宽度为750rpx
- page{} 该页面的最外层的容器
- 底部tab配置 文档=>框架=>全局配置=>tabBar
- 开放数据 文档=>组件=>开放能力=>open-data
- 在小程序中使用vant-ui
- 小程序中使用less
二、生命周期
- onReady/onLoad/onShow/onHide/onShareAppMessage/
- onShow和onLoad的区别
- vue的keep-alive
三、获取数据
-
小程序只支持https
-
需要配置域名白名单
-
开发时可以取消域名校验 小程序右上角详情 =》 不校验合法域名
-
全局变量const app = getApp();
-
封装请求
// 方式1 function service(url, data,method) { method = method?method:'get'; return new Promise((resolve, reject) => { wx.request({ url, data, method, success(res){ if (res.data.code === 666) { resolve(res.data); } else { reject(res.data.msg); } }, fail(err) { reject(er); } }) }); } function get(url,data) { return service(url,data,'get'); } function post(url,data) { return service(url, data, 'post'); } export default { get, post };
// 挂载到app.js, 以后使用不需要每次都导入 //app.js import $http from './utils/request.js' App({ onLaunch: function () { this.$get = $http.get; this.$post = $http.post; }, globalData: { userInfo: null } })
四、渲染页面
- data和setData
- 插值表达式 {{}}
- 列表渲染 wx:for 默认有item和index
- 条件渲染 wx:if
五、事件绑定
-
bindtap或者bind:tap
-
绑定的函数无法传参,需要data-xxx自定义属性,通过event.currentTarget.dataset.xxx
event.target指向被点击的元素,event.currentTarget指向事件绑定的元素// wxml <view class="bd mt-10" wx:for="{{list}}" wx:key="{{index}}" bindtap="del" data-productId="{{item.productId}}" data-index="{{index}}"> <view>{{item.masterName}}</view> </view>
// js del(event) { // productId需要小写 let {index,productid} = event.currentTarget.dataset; console.log(index, productid); }
-
input没有双向绑定,可以通过事件实现数据同步
- 单个输入框
// wxml <view> <input value="{{username}}" bindinput="changeValue"></input> </view>
// js changeValue(event) { this.setData({ username: event.detail.value }) },
- 多个输入框使用同一个函数进行setData
// wxml <view> <input value="{{username}}" bindinput="changeValue" data-name="username"></input> </view> <view> <input value="{{password}}" bindinput="changeValue" data-name="password"></input> </view>
// js changeValue(event) { let name = event.currentTarget.dataset.name; let value = event.detail.value; this.setData({ [name]: value }) },
六、路由配置页面页面跳转
- 通过navigator进行跳转
- 通过wx.navigateTo进行跳转
ps: 跳转有两种类型普通跳转和底部tab的跳转
七、页面传参
- 通过url进行传参,比如: 列表页 /pages/cart/cart?id=sdfasdf23452342342
- 详情页面通过options.id获取参数id的值
- 如果要传递一个对象,需要先将对象转成json字符串,目标页面再把json字符串转成对像
组件
自定义一个小程序组件,父子组件通信
九、本地缓存
十、其他(小程序特有)
- app.json全局配置
- data和setData
- 用户授权
- 调用用户授权api
- 授权类型
- 检查用户是否已经授权
- 获取输入框内容,没有双向绑定(跟react一样)
- 开发工具
- 原生小程序语法开发
- 使用mpvue开发(vue语法)
- 使用wepy开发(.wpy)
- uni-app
- 京东凹凸实验室taro
- openId 用来识别用户
- 小程序后台管理
登陆微信公众,有以下几方面需要设置- AppId: wx1a4e63fdc266444b (登陆微信公众=>设置底部=>appid)
- Secret Key: asdfasdfasdfasdfasdfasfdsadf(登陆微信公众=>开发=>开发设置)
- 开发: 服务器域名(添加你访问的接口地址的ip,比如http://huruqing.cn)
开发阶段可以先不设置: 开发者工具=>详情=>不校验合法域名 - 成员管理: 添加项目开发成员,添加体验成员
- 版本管理: 在开发者工具里上传=>体验版本=>提交审核=>正式版本
网友评论