2017是充分的一年,这一年写了这几个项目:一个微信民众号开辟,两个hybrid app开辟,一个PC端背景erp,另有个人博客项目。
所用到的手艺栈
1、PC端erp属于保护项目,手艺栈为jq+bootstrap。
2、挪动端的手艺栈是webpack+vue+sass+mint-ui。
3、个人博客项目手艺栈是php+webpack+vue+sass+element-ui。
hybrid app开辟
与原生app交互所运用的是WebViewJavascriptBridge,github地点:WebViewJavascriptBridge。
WebViewJavascriptBridge用来实如今Web前端与客户端之间举行音讯通报,有iOS版本与Android版本,所以能够一致音讯通信机制。
遇到的题目
1)场景:民众号项目每次跳转的时刻总会有invalid signature涌现。
解决方法:每次页面跳转的时刻都initWx,在app.vue内里
created() {
this.$router.beforeEach((to, from, next) => {
wx.config({
debug: true, // 开启调试形式
appId: '', // 必填,民众号的唯一标识
timestamp: , // 必填,天生署名的时候戳
nonceStr: '', // 必填,天生署名的随机串
signature: '',// 必填,署名
jsApiList: [] // 必填,须要运用的JS接口列表
});
})
}
2)场景:audio标签举行音频播放在微信不会播放或许不会自动播放
解决方法:用js给audio加上src,用js举行autoplay的操纵,代码以下。
<audio id="music" loop autoplay="autoplay">
<source type="video/mp3" >
<source type="video/ogg" >
Your browser does not support HTML5 video.
</audio>
mounted(){
let musicEle=document.querySelector('#music');
musicEle.src="xxx.mp3";
//--建立页面监听,守候微信端页面加载终了 触发音频播放
document.addEventListener('DOMContentLoaded', function () {
function audioAutoPlay() {
var musicEle0 = document.getElementById('music');
musicEle0.play();
document.addEventListener("WeixinJSBridgeReady", function () {
musicEle0.play();
}, false);
}
audioAutoPlay();
});
//--建立触摸监听,当浏览器翻开页面时,触摸屏幕触发事宜,举行音频播放
document.addEventListener('touchstart', function () {
function audioAutoPlay() {
var musicEle0 = document.getElementById('music');
musicEle0.play();
}
audioAutoPlay();
});
}
3)场景:纪录页面加载时候不正确。
解决方法:运用window.performance新特征,网上材料浩瀚,此处不多赘述。
挪动端项目的一些优化
a)去除console:在build/webpack.prod.conf.js
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false,
drop_console: true,//去除console.log
pure_funcs: ['console.log'],//去除console.log
},
sourceMap: false,
}),
b)去除打包的.map:config/index.js
productionSourceMap: false,
c)vue组件按需加载:参考文档 vue-router官方文档
const abc = () =>import ('@/components/abc')
export default new Router({
routes: [
{
path: '/abc',
name: 'abc',
component: abc
},
]
})
d)项目的体积题目:服务端开启gzip,资本放在cdn上。检察项目的各模块的体积大小可运用webpack-bundle-analyzer,之前文章有所引见,点击此处
http要求封装
没有运用axios,本身封装了日常平凡用的get,post要求。github地点
挪动端log检察东西
经经常使用的是
vConsole
其他
没有其他,只身狗一只,只能撸代码。
总结
2017终究动手vue的现实项目,之前都是本身进修的,学的过程当中没踩到的坑大大小小都遇到很多。举行hybrid app的开辟时,与android和ios同砚沟通是非常重要的,之前没如许交互过,调试花了良久,摔倒了不恐怖,恐怖的是你没爬起来。不足的处所有:github逛的照样太少,项目什么的都没有好好整顿,另有写文章写的少,应当多写些总结性的文章。
2018加油!
以上!