美文网首页
vue中使用loadsh实现实时检索,使用箭头函数报错

vue中使用loadsh实现实时检索,使用箭头函数报错

作者: 北风吹_yfy | 来源:发表于2019-10-31 17:13 被阅读0次
  • 使用npm下载ladash依赖后,引入lodash
import _ from 'lodash'
  • 页面代码:
<div class="search">
    <input type="text" v-model="condition" placeholder="搜索社区" v-on:input="lodashSearch">
</div>
  • methods方法:
//实时检索
lodashSearch: _.debounce(() => {
    this.getSearchCommunity(); // 添加debounce,防止页面卡死
}, 400),

报错:this.this.getSearchCommunity is not a function

打印this为undefined

后面不使用箭头函数,则程序正常,不报错

 lodashSearch: _.debounce(function(){
    console.log(this); //vue实例对象
    this.getSearchCommunity(); // 添加debounce,防止页面卡死
}, 500),

但是我之前使用lodash做resize事件监听时,使用的是箭头函数,然后程序正常啊,
代码如下:

mounted: function () {
    let _ = require('lodash');
    window.onresize = _.debounce(() => {
    this.initPage(); // 添加debounce,防止页面卡死      
    }, 400);
},

为什么在 mounted 和 methods 里效果不一样呢?

  • 原因如下:

methods 将被混入到 Vue 实例中。可以直接通过 VM 实例访问这些方法,或者在指令表达式中使用。方法中的 this 自动绑定为 Vue 实例。

注意,不应该使用箭头函数来定义 method 函数 (例如 plus: () => this.a++)。理由是箭头函数绑定了父级作用域的上下文,所以 this 将不会按照期望指向 Vue 实例,this.a 将是 undefined。

示例:

var vm = new Vue({
  data: { a: 1 },
  methods: {
    plus: function () {
      this.a++
    },
    do(){
      this.a--;
    }
  }
})
vm.plus()
vm.a // 2

相关文章

  • vue中使用loadsh实现实时检索,使用箭头函数报错

    使用npm下载ladash依赖后,引入lodash 页面代码: methods方法: 报错:this.this.g...

  • ES6新特性5:函数的扩展之箭头函数

    箭头函数在ES6中最常用的特性,学习好至关重要,特别在Vue项目和React项目。 箭头函数:ES6中使用(=>)...

  • Vue生命周期函数详解

    Vue2.x 你不能使用箭头函数来定义一个生命周期方法!!因为this啥也找不到还报错! beforeCreate...

  • this

    this,用于定义构造函数中的属性和方法,注意构造函数不可以使用箭头函数定义,因为箭头函数中没有this,如果使用...

  • vue2中哪些使用箭头函数,哪些使用普通函数

    vue所管理的函数都要写成普通函数,不能使用箭头函数。在new Vue实例内的配置中对应的函数。例如:1.不应该使...

  • ECMAScript 6 箭头函数

    箭头函数 ES6 允许使用“箭头”(=>)定义函数。 使用注意点 箭头函数有几个使用注意点。 (1)函数体内的th...

  • Es6知识点总结

    methods 不能使用箭头函数 为啥?在箭头函数中使用this的话指向的是组件本身 如果不使用箭头函数 this...

  • 箭头函数

    箭头函数 为什么使用箭头函数

  • Vue watch侦听器中的函数与箭头函数

    ES6用的越来越多,箭头函数写顺了,函数大部分都写成了箭头函数。在Vue的watch中也顺手使用,然而出现了问题。...

  • 箭头函数的用法

    箭头函数的使用 上面代码中,箭头函数的参数如果有一个就不用带括号,如果多个参数就得使用括号了。 箭头函数this的...

网友评论

      本文标题:vue中使用loadsh实现实时检索,使用箭头函数报错

      本文链接:https://www.haomeiwen.com/subject/wbvtbctx.html