使用vue开发过一段时间了,采用 Vue-cli脚手架中出现一些页面空白问题的解决方法总汇
我们会发现页面head中引用的js和css文件是出现了路径错误,这里修改如下:
解决位置:config/index.js文件:把assetsPublicPath: '/'改为assetsPublicPath: './'
build: {
assetsPublicPath: './',
}
webpack-dev-server >= 2.8.0 的版本在 iOS Safari 下无法打开网页,效果为白屏。
控制台报错:Can't find variable: SockJS 应该是 Safari 的 BUG,比如下面的代码就会抛出
Error eval("const a = function () {}; function b() { a(); }; b();")
yarn add webpack-dev-server@~2.7.0 -D
yarn add babel-plugin-transform-es2015-block-scoping -D
修改 webpack 相关配置
{
test: /\.js$/,
loader: 'babel-loader',
include: [
...,
/node_modules\/webpack-dev-server/
]
}
npm run dev后可能出现无法加载到路由模板的信息。
解决位置:config/index.js文件:把
devtool: '#eval-source-map' 改为devtool:'inline-source-map'
dev: {
devtool:'inline-source-map',
}
默认只能通过localhost或者127.0.0.1才能访问,如果使用本机的Ip地址会出现无法访问到的情况。
解决位置:config/index.js文件:把config/index.js中“host” 配置为“0.0.0.0”就可以解决,或者设置为你电脑的IP地址也行:
dev: {
host: '192.168.10.122',
}
这是由于IE对promise的支持不好,我们需要安装:babel-polyfill和es6-promise:
npm install babel-polyfill
npm install es6-promise
然后在main.js文件中引用:
import 'babel-polyfill'
import Vue from 'vue'
import Es6Promise from 'es6-promise'
Es6Promise.polyfill()
最后 build/webpack.base.conf.js 文件中配置如下:
module.exports = {
entry: {
app: ["babel-polyfill", "./src/main.js"]
}
};
a:出现变量定义两次的错误描述,如下:
SyntaxError: Cannot declare a let variable twice
原因是由于ios 10中Safari中错误描述如下:当你定义一个与参数同名的for循环迭代变量时,我们错误地认为这是一个语法错误。解决方法如下:
找到webpack.prod.conf.js文件,在UglifyPlugin的定义里添加关于mangle的选项
new UglifyJsPlugin({
uglifyOptions: {
compress: {
warnings: false
},
mangle: {
safari10: true
}
},
sourceMap: config.build.productionSourceMap,
parallel: true
}),
b:使用Swiper插件:这是由于Swiper插件中用到了ES6的语法a = b ** c,a是b的c次方,而iOS 10的Safari里不认识这样的语法,认为这是一个错误,所以你需要让Swiper经过babel的包装,而缺省状态下babel是不对node_modules里的模块进行编译的。解决方法是在项目根目录下新建一个文件vue.config.js,在里面添加如下语句:
module.exports = {
chainWebpack: config => {
config.rule('js').include.add(/node_modules\/(dom7|swiper)\/.*/)
}
}
vue中出现空白页面的情况大概也就就上面这些了,如何遇到其他情况,欢迎留言讨论总结。
VueJS 实际开发中会遇到的问题,主要写一些 官方手册 上没有写,但是实际开发中会遇到的问题,需要一定知识基础。
Vue.js是一套构建用户界面的渐进式的前端框架。 vueJS与后台交互数据的方法我所了解的有以下几种
Vue是一套构建用户界面的JS渐进式框架。 Vue 只关注视图层, 采用自底向上增量开发的设计。讲解js高级之响应式、过渡效果、过渡状态。
深入理解Vue.js响应式原理。Vue教程有关的视频都讲到,我习惯响应式开发,在更早的Angular1时代,我们叫它:数据绑定(Data Binding)。你只需要在Vue实例的 data() 块中定义一些数据,并绑定到HTML
在vue组件中,为了使样式私有化(模块化),不对全局造成污染,可以在style标签上添加scoped属性以表示它的只属于当下的模块,这是一个非常好的举措,但是为什么要慎用呢?因为scoped往往会造成我们在修改公共组件(三方库或者项目定制的组件)的样式困难,需要增加额外的工作量
vue现在使用的人越来越多了,这篇文章主要整理一些比较优秀的移动端ui框架,推荐给大家,例如:mint UI、vux、vonic、vant、cube-ui、Muse-ui、Vue-Carbon、YDUI等
webpack是开发Vue单页应用必不可少的工具,它能管理复杂的构建步骤,并且优化你的应用大小和性能, 使你的开发工作流更加简单。在这篇文章中,我将解释使用webpack提升你的Vue应用的4种方式,包括:单文件组件、优化Vue构建过程、浏览器缓存管理、代码分离
Vue-Access-Control是一套基于Vue/Vue-Router/axios 实现的前端用户权限控制解决方案,通过对路由、视图、请求三个层面的控制,使开发者可以实现任意颗粒度的用户权限控制。
Web 中的组件其实就是页面组成的一部分,具有高内聚性,低耦合度,互冲突等特点,有利于提高开发效率,方便重复使用,简化调试步骤等。vue 中的组件是一个自定义标签形式,扩展原生的html元素,封装可重用的代码。
Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务逻辑处理、数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进行对整个Vue实例生成、编译、挂着、销毁等过程进行js控制。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!