解决Vue的组件属性this不存在问题
目录
- Vue的组件属性this不存在
- 问题来源
- 原因
- 解决方案
- Vue中的this丢失
- 解决方案
Vue的组件属性this不存在
问题来源
今天写代码,发现我的mounted方法里面的this全部一致是undefined,很奇怪,一致再找问题然后我找到问题了。
原因
原因是我用mounted方法的时候一致是采用的箭头函数而箭头函数的话是和父作用域相关的,所以不会绑定到实例。
脑袋之前一致没转到这个问题上来坑死我了。
解决方案
在实例的属性里面坚决不要使用箭头函数!!!!!!!!!!!
Vue中的this丢失
1.接口请求发送不出去,显示TypeErrory错误
2.语句看似不执行
解决方案
//引用 this.$options.methods.getAll(this) getAll:function(vue){ //开始网络传输 vue.$http.get(protocal + ip + port + project + 'sdf/sdasd/sad/' ).then(result => { console.log(result.body) if (result.body.result) { } //成功了 else { // 失败了 }) },
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
浅谈vue方法内的方法使用this的问题
如下所示: locapos(){//定位方法 if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { var pos = { lat: position.coords.latitude, lng: position.coords.longitude }; var latLng = new google.maps.LatLng(aa[1], aa[0]); var info
-
解决vue侦听器watch,调用this时出现undefined的问题
watch侦听器中,我们要将新的值赋给this.a出错 watch: { value: (newV, oldV) => { this.a = newV; } } 这里报错undefined,这里错误的原因是不能写成箭头函数.写成箭头函数后,this会取上下文,而不是组件里面的this了,正确写法为: watch: { value: function(newV, oldV) { this.a = newV; } } 如下图: 看考链接:https://cn.vuejs.org/v2/api/#wa
-
详解vue中的computed的this指向问题
今天在写vue项目时,用到了computed计算属性,遇到了使用箭头函数出现this指向问题,这里记录下 1.箭头函数中的this 箭头函数内部的this是词法作用域,由上下文确定 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象 2.vue中的computed 使用箭头函数 list: () => { console.log(this) } 不使用箭头函数 allFigure: function() { console.log(this) }, 使用get() allFig
-
在vue中使用回调函数,this调用无效的解决
let self = this //使用新变量替换this,以免this无效 //updateStudentInfoToServer是一个将本身部分数据异步上传的接口,接收三个参数,其中第一个是数据,第二.三个是函数,第二.三个函数使用function(){}形式书写 updateStudentInfoToServer:function(data, networkOk, networkError){ let postData = this.$qs.stringify({ data:data })
-
解决Vue的组件属性this不存在问题
目录 Vue的组件属性this不存在 问题来源 原因 解决方案 Vue中的this丢失 解决方案 Vue的组件属性this不存在 问题来源 今天写代码,发现我的mounted方法里面的this全部一致是undefined,很奇怪,一致再找问题然后我找到问题了. 原因 原因是我用mounted方法的时候一致是采用的箭头函数而箭头函数的话是和父作用域相关的,所以不会绑定到实例. 脑袋之前一致没转到这个问题上来坑死我了. 解决方案 在实例的属性里面坚决不要使用箭头函数!!!!!!!!!!! Vue中的
-
解决vue中对象属性改变视图不更新的问题
常规情况下我们在vue实例的data中设置响应数据.但当数据为对象,我们增加或删除对象属性值时,视图并不触发更新,如何解决这个问题呢? 实例代码如下: let vm = new Vue{ el: '#app', data: { obj: { k: 'v' } }, ... } 有三种解决方案: 方案一:利用Vue.set(object,key,val) 例:Vue.set(vm.obj,'k1','v1') 方案二:利用this.$set(this.obj,key,val) 例:this.$se
-
解决vue 更改计算属性后select选中值不更改的问题
先上代码: //... <body> <div id="qwe"> <select v-model="selected"> <option v-for="item in da" :value="item.value">{{item.value}}</option> </select> <span>{{selected}}</span>
-
解决vue router组件状态刷新消失的问题
场景:vue-router实现的单页应用,登录页调用登录接口后,服务器返回用户信息,然后通过router.push({name: 'index', params: res.data})跳转到主页,并在主页显示数据.但是当刷新页面时,由于并不是通过登录接口进入主页,router中没有'params: res.data'信息,主页无法获取到登录信息. 解决方案: 1.session&服务器渲染 传统的方案是,登录页和主页是单独的两个页面,登录成功后服务器生成用户信息对应的session,然后渲染主页
-
解决vue 子组件修改父组件传来的props值报错问题
vue不推荐直接在子组件中修改父组件传来的props的值,会报错 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "result&
-
解决vue路由组件vue-router实例被复用问题
最近在开发过程中遇到如下问题: 当前路由是这样的 http://127.0.0.1:3010/order?keywords=22 只改变keywords的值,路由不跳转 http://127.0.0.1:3010/order?keywords=33338 造成这样的原因如下图所示: 参考文档:https://router.vuejs.org/en/essentials/dynamic-matching.html 这种情况网上的解决方式: 使用vue-router切换路由时会触发组件树的更新,根据
-
Vue父子组件属性传递实现方法详解
目录 前言 组件之间属性的传递 父组件传递属性给子组件 子组件传递属性给父组件 前言 这节我们主要从案例出发,用Vue3的写法写父子组件之间的属性传递. 组件之间属性的传递 我们定义一个Rate组件,具有以下功能: 接收来自外部组件传入的参数,starCount代表星星个数.color代表星星颜色. 需要根据传入星星的个数,展示对应数量的星星. 父组件传递属性给子组件 那么在编写组件的时候,我们需要注意什么? 我们可以使用defineProps来规范传递数据的格式.可以结合withDefault
-
解决vue 单文件组件中样式加载问题
在写单文件组件时,一般都是把标签.脚本.样式写到一起,这样写个人感觉有点不够简洁,所以就想着把样式分离出去. 采用import加载样式 在局部作用域(scoped)采用@import加载进来的样式文件,想法是美好的.以为这样加载进来的样式文件也只对当前组件有效:可现实是残酷的,这样加载进来的样式无法限制其作用域. <style scoped> @import "样式文件"; </style> 解决方案 采用 src属性加载样式. <style src=&q
-
解决vue组件props传值对象获取不到的问题
先说问题,父组件利用props向子组件传值,浏览器 console 有这个值,但是获取不到内部的属性,困了我3个小时,真的** personal console 以下为原代码 1.home.vue(父组件)--personal是被传的参数 <!--子组件--> <form-picker class="form-picker" :personal="personal" > </form-picker> export default
-
解决vue同一slot在组件中渲染多次的问题
Q:今天写公共组件的时候碰到一个奇葩的情况,slot内部需要再次调用slot,这就会导致同一slot在组件中渲染多次引发的bug A:把把父组件需要传入的dom结构作为props属性传递给slotRender,保证出来的dom结构不相同(尽管它们都是同一vnode渲染出来的) 定义一个渲染slot的组件 子公共组件调用 父公共组件调用 以上这篇解决vue同一slot在组件中渲染多次的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
随机推荐
- ext中store.load跟store.reload的区别示例介绍
- Angular.JS中的this指向详解
- Redis 实现队列原理的实例详解
- python函数参数*args**kwargs用法实例
- 把CSV文件导入到SQL Server表中的方法
- JS输入用户名自动显示邮箱后缀列表的方法
- iOS中UIWebView网页加载组件的基础及使用技巧实例
- 30分钟快速掌握Bootstrap框架
- 仿3721首页模块拖曳移动效果js代码[可拖曳层移动层]
- MySQL查询和修改auto_increment的方法
- javascript 输入框提示列表效果
- JavaScript 变量作用域及闭包第1/2页
- php判断上传的Excel文件中是否有图片及PHPExcel库认识
- 用shell脚本监控进程是否存在 不存在则启动的实例
- Ruby self在不同环境的含义
- MongoDB加入到Windows服务的方法
- javascript实现tab切换的两个实例
- 一个文件搞定系统所有问题 推荐
- Android判断NavigationBar是否显示的方法(获取屏幕真实的高度)
- C#编程总结(六)详解异步编程