关于小程序的脚手架选择,这块我以为有必要说一句,前端小程序框架多,如Taro,uni-app,wepy,mpvue等等,或者最近滴滴又出了一个框架Chameleon,我是以为不要把过多的时间用在框架上,稍微知道一下原理就好了,千万不要为了学而学,前端天花板没那么高,我我的认为就是太杂。找准本身的核心。专精就行了。这是我本身的一个小想法javascript
小程序-商城类思路开拓php
分享一个cli(看我的习惯用js仍是ts)css
连接地址html
直接说重点吧,若是有问题在下方留言,先后端一块儿加速,才能让页面更快前端
通过分包的处理,初次加载只有主包内容,那么逐步排查主包的页面加载状况,可是有一个前提条件须要注意,微信开发者工具毕竟不一样于微信的宿主环境,双方加载速度确定不同,因此微信开发者工具快不表明宿主环境快。vue
let $ajax = {
header: {
"content-type": "application/json"
},
get: function(param) {
return this.methods("GET", param);
},
post: function(param) {
return this.methods("POST", param);
},
methods: function(type = "GET", param = {}) {
const token=wx.getStorageSync('token');
token===undefined?wx.navigateTo({
url:'/login'
}):""
return new Promise((resolve, reject) => {
wx.request({
url: "test.php", //仅为示例,并不是真实的接口地址
data: param,
header: this.header,
success(res) {
resolve(res);
},
fail(err) {
reject(err);
}
});
});
}
};
}
复制代码
我用的最多就是节流函数,通常在页面滚动scroll, 按钮反复点击(若是网络比较慢,反复点击会发现从A->B页面时进入了两次)java
好比5秒内,不管你怎么触发,都不会执行,原理利用了定时器Timeout。webpack
说白了就是延迟函数。即触发以后当即执行,5秒后再执行git
1.反复setData一个很大的数组不是一件好事,会重绘github
若是只修改单条数据
let obj={
name:'张三',
age:'23',
gender:'男'
}
let userList=[{
userName:'小明'
},{
userName:'小王'
}]
//数组
this.setData({
'userList[0].userName':value
})
//对象
this.setData({
'obj.gender':value
})
复制代码
滚动底部加载分页数据,优化一次性setData数据过多的状况
理由:小程序有数据限制,一次性setData太多数据否则会凉凉,固然这是考虑大佬们的公司数据特多的时候,通常状况仍是没问题的。
//场景以下:此时已经加载了两页数据即两个数组userList
let userList=[[{a:2}],[b:2]] //目前所存
let page=3; //
let data=[{a:3}] //是后台返回第三页的数组
this.setData({
['userList[' + (page - 1) + ']']: data
})
复制代码
1.前端一些小icon图片压缩,其他用cdn服务器
2.微信也提供了API 监听wxml的位置是否出如今界面上,API我就放到这了,大概的做用就是监听wxml是否在用户显示区域,若是不在 就能够不加载看不见的图片(最好用Proomise和匿名函数封装一下再用)
这点应该不止在小程序,在Vue,React中都有体现,Key是有做用的,若是不是颇有用的数据用index作key没啥问题,若是不是,首先用key,由于index是会改变的,本来缓存的数据会由于key值的改变致使重绘,消耗了小程序的性能
分包加载对于大型小程序来讲能够算的上是福音,原理官方都有,我也不啰嗦了直接贴地址,这里我主要讲一下步骤和使用分包好处
好处就是快,小程序顾名思义就是快,还有一个最大的好处,能够扩容,让你的小程序能够放入更多的代码
若是选择其中去分包,建议就至始至终就用这种方式,由于若是根据逻辑和页面两种并行。。不咋的好维护
修改收货地址,这个通常不是对这个平台很感兴趣,不多会用到,因此这个逻辑及页面扔进packageA分包中,等真正到了这个环节再去加载这个页面以及相应的逻辑.
修改用户资料 这一块我以如今火热的CPS项目(帮拼多多,淘宝等大型电商分销)打个比方,当用户进入到你的小程序时,最重要就是快,CPS最重要是帮助用户解决拿到优惠券而后转到各种大型平台身上,因此这种使用频率不高,可是大部分电商会保留的系列页面直接扔到packageB上