在 vue 里面到底哪种写法比较规范?

ye22st 13天前 14

我看到很多项目里面对于 this 指向的写法都是 let self = this; 有些人跟我说就这样写,有些人又说这种写法不规范? 请教一下 V 站的大佬,哪种比较规范?

最新回复 (43)
  • nianyu 10天前
    引用 2
    let self = this 没问题,以前很多库的源码都是这么写的,这东西无所谓的
  • ujued 10天前
    引用 3
    let forClosure = this
  • loading 10天前
    引用 4
    let that=this
    或者
    let _this=this
  • sagaxu 10天前
    引用 5
    写 const 也行
  • Biwood 10天前
    引用 6
    既然已经用 let 关键字了,那么完全可以用箭头函数来规避这种语法,我反正是从写 ES6 开始很久都没这么写了,除非你有什么特殊需求?
  • Hanggi 10天前
    引用 7
    这个问题上次不是都说了嘛:


    const 这个 = this;

    这个.submit();
  • qyc666 10天前
    引用 8
    为什么不用箭头函数
  • seeker 10天前
    引用 9
    哪那么多讲究的,我都是 `const this2 = this`
  • ChanKc 10天前
    引用 10
    箭头函数,self,that 都可以
  • xxx749 10天前
    引用 11
    const context = this
  • Trim21 10天前
    引用 12
    我之前看人用的 vm
  • zhuangzhuang1988 10天前
    引用 13
    自己怎么爽怎么 来..
  • ChanKc 10天前
    引用 14
    @Trim21 vm 就只在 Vue 的场景下比较合适,没有 that 或者 self 通用
  • 楼主 ye22st 10天前
    引用 15
    好的,谢谢各位大佬解答。
  • BXGo 10天前
    引用 16
    有文档规范
  • mxT52CRuqR6o5 10天前
    引用 17
    没有那种最规范,看团队怎么规定
  • SilentDepth 10天前
    引用 18
    没见过有规范明确要求这样处理 this 。只要不产生歧义,并且你(和你的协作者)清楚 this 在代码中的实际指向,怎么写着爽怎么来。
  • surfwave 10天前
    引用 19
    用箭头函数啊
  • Lxxyx 10天前
    引用 20
    一直用的 ctx 。

    ```js
    const ctx = this;
    ```
  • ppgs8903 10天前
    引用 21
    let that = this
    其他都容易冲突,self 用在 类 CLASS 的方案里面,不建议
  • ChanKc 10天前
    引用 22
    @ppgs8903 这个怎么说?
  • zhuisui 10天前
    引用 23
    @ChanKc 比如 self 在 webpack 被导出作为 this 的别名是很常见的,所以认为它应该是 window 的别名
  • Vegetable 10天前
    引用 24
    变量名还有啥规范,纯粹一点好吗,何况现在有箭头函数
  • ChanKc 10天前
    引用 25
    @zhuisui 感谢 https://github.com/webpack/webpack-dev-server/issues/792
  • wish8023 10天前
    引用 26
    建议用 ES6 语法,在现代浏览器,基本都可用了。
  • WilliamLin 10天前
    引用 27
    let _this = this
  • hitaoguo 10天前
    引用 28
    能不要新定义个变量就不要定义,这样能加深你对 this 指向的理解。
    大部分情况下用箭头函数就能解决。
    除非说在函数里面有它自己的 this 需要用到,同时还需要外部的 this,那么写 vue 的话我一般是 let vm = this 。
  • gitjavascript 10天前
    引用 29
    反正 let 肯定是不好的
  • guanhui07 10天前
    引用 30
    _this 或
    that 用的人比较多
  • cz5424 10天前
    引用 31
    建议改成 ES6,不用 this 。this 真烦
  • TomatoYuyuko 10天前
    引用 32
    见过用 entity = this 的也不错,
  • Junh 10天前
    引用 33
    这好像和 vue 没什么关系吧
  • optional 10天前
    引用 34
    为啥是 let ? 这里显然应该用 const
    `
    const self = this
    const $this = this
    const _this = this
    ·
  • Tdy95 10天前
    引用 35
    业务代码里面使用箭头函数,保证 this 指向不丢失即可。

    vue 的生命周期等方法调用的时候都帮你把 this 实例注入了好了
  • wobuhuicode 10天前
    引用 36
    其实写习惯了 C 系列语言都喜欢 let self = this
    写习惯 java 的估计就喜欢 let that = this
    写习惯前端的都喜欢用箭头函数。
  • xiangyuecn 10天前
    引用 37
    This
  • Martox 10天前
    引用 38
    let that = this
  • soulmt 10天前
    引用 39
    我就觉得很 low 多此一举不是么
  • soulmt 10天前
    引用 40
    @hitaoguo 对,如果不是为了区分 2 个 this 不一致, 完全没必要申明一个新的;
  • sunwang 10天前
    引用 41
    有了箭头函数就没用过这个写法了
  • kinghly 10天前
    引用 42
    先要明白为什么这么写,可以看下 js 闭包。let 、const 、()=>{}不是万能的。
  • ghosthcp516 10天前
    引用 43
    要么用箭头函数,如果要写兼容代码请用 var self = this,你这个等于是缝合怪写法
  • ryanlid 10天前
    引用 44
    在浏览器中,self 是有值的,指向当前 window 对象的引用。

    https://developer.mozilla.org/zh-CN/docs/Web/API/Window/self
  • 游客
    45
返回