今天写了一个web项目,用chrome浏览器,手机端微信你打开都没问题,但是在pc端微信打开后是空白的,于是我重新做了一个空白的vue项目,用pc端微信浏览器是可以打开的。
慢慢调试发现是语法的问题
一步一步减去组件,再一步一步加上组件,最终定位到一个import的组件导致的。
原来是pc端微信浏览器不支持部分es6的语法,
es6语法主要用到()=>{}和let,但是使用这两个语法并不会导致这个问题,应该是其他原因导致的,懒得深入研究的语法或者新特性导致的
不使用()=>{}语法的话,this在function(){}中不能使用,所以要var _this = this然后在原来的()=>{}中使用_this代替this
经过深入研究,当时的pc浏览器的内核版本不支持es6语法,可以通过其他方式将含有es6语法的项目转为es5
1. 安装babel-polyfill:
npm install --save babel-polyfill
2.在main.js引入
import 'babel-polyfill'
3.在webpack.base.conf.js中配置:
module.exports = {
context: path.resolve(__dirname, '../'),
entry: {
app: ['babel-polyfill','./src/main.js'] //===========这一行加入babel-polyfill
}
...
...
...
}
今天写了一个web项目,用chrome浏览器,手机端微信你打开都没问题,但是在pc端微信打开后是空白的,于是我重新做了一个空白的vue项目,用pc端微信浏览器是可以打开的。
慢慢调试发现是语法的问题
一步一步减去组件,再一步一步加上组件,最终定位到一个import的组件导致的。
原来是pc端微信浏览器不支持部分es6的语法,
es6语法主要用到()=>{}和let,但是使用这两个语法并不会导致这个问题,应该是其他原因导致的,懒得深入研究的语法或者新特性导致的
不使用()=>{}语法的话,this在function(){}中不能使用,所以要var _this = this然后在原来的()=>{}中使用_this代替this
经过深入研究,当时的pc浏览器的内核版本不支持es6语法,可以通过其他方式将含有es6语法的项目转为es5
1. 安装babel-polyfill:
npm install --save babel-polyfill
2.在main.js引入
import 'babel-polyfill'
3.在webpack.base.conf.js中配置:
module.exports = {
context: path.resolve(__dirname, '../'),
entry: {
app: ['babel-polyfill','./src/main.js'] //===========这一行加入babel-polyfill
}
...
...
...
}