关键词:
前言
前端开发对于vue的使用已经越来越多,它的优点就不做介绍了, 本篇是我对vue使用过程中遇到的问题中做的一些总结,帮助大家踩坑。如果喜欢的话可以点波赞,或者关注一下,希望本文可以帮到大家!!!
本篇介绍的问题大概如下:
-
路由变化页面数据不刷新问题
-
setTimeout/setInterval(泛指异步回掉函数的this指向)this指向改变,无法用this访问VUe实例
-
setInterval路由跳转继续运行并没有及时进行销毁
-
vue 滚动行为用法,进入路由需要滚动到浏览器底部 头部等等
-
实现vue路由拦截浏览器的需求,进行 一系列操作 草稿保存等等
-
v-once 只渲染元素和组件一次,优化更新渲染性能
-
vue本地代理配置 解决跨域问题,仅限于开发环境
-
本地开发 没有任何问题 部署服务器 就404啊这些问题
1. 路由变化页面数据不刷新问题:
出现这种情况是因为依赖路由的params参数获取写在created生命周期里面,因为路由懒加载的关系,退出页面再进入另一个文章页面并不会运行created组件生命周期,导致文章数据还是第一次进入的数据
解决方法:watch监听路由是否变化
watch: {
// 方法1
‘$route‘ (to, from) { //监听路由是否变化
if(this.$route.params.articleId){// 判断条件1 判断传递值的变化
//获取文章数据
}
}
//方法2
‘$route‘(to, from) {
if (to.path == "/page") { /// 判断条件2 监听路由名 监听你从什么路由跳转过来的
this.message = this.$route.query.msg
}
}
}
2. 异步回调函数中使用this无法指向vue实例对象
//setTimeout/setInterval ajax Promise等等
data(){
return{
...
}
},
methods (){
setTimeout(function () { //其它几种情况相同
console.log(this);//此时this指向并不是vue实例 导致操作的一些ma‘f
},1000);
}
解决方案 变量赋值和箭头函数
var和let的区别
//使用变量访问this实例
let self=this;
setTimeout(function () {
console.log(self);//使用self变量访问this实例
},1000);
//箭头函数访问this实例 因为箭头函数本身没有绑定this
setTimeout(() => {
console.log(this);
}, 500);
结语
这篇文章只是开始,它的待续还会很长很长,希望你我坚持下去!也希望我能帮助到更多的人,当然也会让我真正沉淀一下,为了以后为了将来 一起努力如果大家有什么问题,或者需要补充的 欢迎留言!
如果觉得文章对大家有帮助,希望大家能点赞一下或者关注一下,得到肯定的我会更加努力!~~
在vue项目中使用vant的踩坑日常(表单提交的一系列问题)
1、首先从picker选择器说起,在picker选择器中,要进行简单的一些设置(1)、将选中后的数据回显到field中在Picker上设置click事件(将使用相似的picker选择器抽离出来) 在data中定义好targetIndex和phoneColums,获取点击后的picker的i... 查看详情
wampserver下载安装!!!踩坑总结系列
Wampserver下载安装!!!踩坑总结系列WampServer的正确下载方法点我进入WampServer官网点击Sourceforge跳转后的页面如下如果提示"ThepagefailedtoincludetheDR_mirror_list!"重复打开上面的页面一步步来即可,推荐用谷歌浏览... 查看详情
reactnative踩坑系列--构建失败
初始化项目后执行react-nativerun-ios,构建失败:**BUILDFAILED**Thefollowingcommandsproducedanalyzerissues:Analyze/Users/lcz/workspace/APP/temp/node_modules/react-native/ReactCommon/yoga/yoga/YGNodeList.cAnalyze/User 查看详情
vue:踩坑
1.axios导入Axios的导入顺序在vue-axios官网上已经明确写了但是比较坑的是,下面这个Vue.use()里面一定要VueAxios在前,也就是说要先useVueAxios才行。要不然就会报错:ErrorinnextTick:"TypeError:this.axiosisnotafunction" 查看详情
vue踩坑2
exportdefaultname:‘App‘ 这样在App.vue里 有空行,也会报错 解决办法一: 养成良好编码习惯,不留多余空行。解决办法二: 在.eslintignore 里文件里添加/src/ 因为App.vue在src文件里 查看详情
vue-router踩坑
这是原来的路由配置importVuefrom‘vue‘;importRouterfrom‘vue-router‘;importHellofrom‘components/Hello‘;Vue.use(Router);exportdefaultnewRouter({routes:[{path:‘/‘,components:{default:Hello}}]}); 可以看出path:‘/‘就是 查看详情
springboot学习之路踩坑系列:访问静态资源
众所周知,SpringBoot的静态资源默认路径定义在org.springframework.boot.autoconfigure.web.ResourceProperties 1privatestaticfinalString[]CLASSPATH_RESOURCE_LOCATIONS={2"classpath:/META-INF/resources/","classpath:/res 查看详情
bootstrap之js插件踩坑系列
<html><head> <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css"> <!-- 可选的Boots 查看详情
vue踩坑之旅--computedwatch(代码片段)
vue踩坑之旅--computedwatch经常在使用vue初始化组件时,会报一些莫名其妙的错误,或者,数据明明有数据,确还是拿不到,这是多么痛苦而又令人忍不住抓耳挠腮,捶胸顿足啊技术点vue+element+ehcarts+vuex+vue-router问题再现data()returnopti... 查看详情
vue踩坑记
首先,第一点;定义一个模板home.vue<template><divclass="hello"><h1>hello</h1></div></template><script>exportdefault{name:‘hello‘,data(){return{}}}</script>这些是必须的,不然会报 查看详情
vue的踩坑路
------>axios模拟getjson一直拿不到文件,先把data放到根目录,再去dev-server.js(就是npm执行的那个文件)里面设置静态资源访问路径app.use(‘/data‘,express.static(‘./data‘))...app.use(hotMiddleware)//servepurestaticassetsvarstaticPath=path.posix.j 查看详情
vue使用踩坑note
1. 如图,假如large那一行错写成 ‘large‘:item.ext_data.isLarge+‘‘===‘true‘,, 那么,编译不报错,控制台无提示,模板不输出。 2.vue的template中无法直接访问到window,需要在data中声明 查看详情
20180408-20180413vue踩坑(代码片段)
在vue的template里,注意驼峰写法,如::style="marginLeft:`-$mleftpx`" 在一个methods里调用另一个methods:this.$options.methods.function.bind(this)();//可用this.function();//可用this.$options.methods.function;//不好用目前并不知道什 查看详情
h5踩坑系列(代码片段)
提到移动端适配,首先心里可能会问,我们为什么要做移动端的适配,怎么去做移动端端的适配我们为什么要进行移动端的适配首先一个页面在pc上边打开,是正常显示的,但是我们用手机打开的时候,由于手机的屏幕尺寸并不... 查看详情
大数据问题排查系列-hive踩坑记
前言大家好,我是明哥!本片博文是“大数据线上问题排查系列”大类别之一,讲述前段时间我司某产品在某券商遇到的一个问题及解决方案,其背后涉及到hive的一个BUG,在hive3.0才修复。以下是正文。问题现象cdh6... 查看详情
大数据线上问题排查系列-hive踩坑记(代码片段)
大数据线上问题排查系列-HIVE踩坑记前言大家好,我是明哥!本片博文是“大数据线上问题排查系列”大类别之一,讲述前段时间我司某产品在某券商遇到的一个问题及解决方案,其背后涉及到hive的一个BUG,在hive3.... 查看详情
vue+element踩坑记录(代码片段)
Vue+Element踩坑 1.获取后台返回的数据,是个数组,循环后展示出来<el-table-column:label="$t(‘common.cardModel.guz‘)"sortable="custom"prop="assetNo"><templateslot-scope="scope"><divv-for="(item,index)inscope. 查看详情
vue踩坑--项目名称不能与插件名称一样
今天webpack搭建,命令行一直报错百度说是项目名称为:vuenpm拒绝安装后来才发现是package.json的name名称也设成了vue所以修改一下就可以了。 查看详情