Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用装饰器时如何在VueJS中使用数据对象&引用;预期';这';由类方法使用';数据'&引用;_Javascript_Vue.js_Vuejs2_Decorator - Fatal编程技术网

Javascript 使用装饰器时如何在VueJS中使用数据对象&引用;预期';这';由类方法使用';数据'&引用;

Javascript 使用装饰器时如何在VueJS中使用数据对象&引用;预期';这';由类方法使用';数据'&引用;,javascript,vue.js,vuejs2,decorator,Javascript,Vue.js,Vuejs2,Decorator,错误>类方法“data”应使用“this” 我确实发现了这一点,并认为下面的说法是正确的: 从“Vue属性装饰器”导入{Component,Prop,Vue} 从“@/constants/links”导入{MOON_HOLDINGS_LINK,TWITTER_LINK} @组成部分 导出默认类HelloWorld扩展Vue{ @Prop()私有标题!:字符串 data():任何{ 返回{ 月亮链接:月亮链接, } } } 这是由于ESLint的规则 但是data()不需要使用此(仅在非常罕

错误>类方法“data”应使用“this”

我确实发现了这一点,并认为下面的说法是正确的:


从“Vue属性装饰器”导入{Component,Prop,Vue}
从“@/constants/links”导入{MOON_HOLDINGS_LINK,TWITTER_LINK}
@组成部分
导出默认类HelloWorld扩展Vue{
@Prop()私有标题!:字符串
data():任何{
返回{
月亮链接:月亮链接,
}
}
}

这是由于ESLint的规则

但是
data()
不需要使用
(仅在非常罕见的情况下)

因此,您可能应该抑制该特定方法的警告,因为我认为
data()
符合以下描述的场景:

例如,您可能有一个来自外部库的规范,该规范要求您将方法作为常规函数(而不是静态方法)覆盖,并且在函数体中不使用
this

因此,您可以使用:

/*eslint类方法使用以下内容:[“error”,{“exceptMethods”:[“data”]}]*/
例如:


从“Vue属性装饰器”导入{Component,Prop,Vue}
从“@/constants/links”导入{MOON_HOLDINGS_LINK,TWITTER_LINK}
@组成部分
导出默认类HelloWorld扩展Vue{
@Prop()私有标题!:字符串
/*eslint类方法使用:[“error”,{“exceptMethods”:[“data”]}]*/
data():任何{
返回{
月亮链接:月亮链接,
}
}
}

为每个Vue类写出忽略注释会很烦人。可能最好是在
.eslintrc
中填充覆盖,或者仅在linter中填充。您可以在基本配置中覆盖它。如果尚未使用,还可以使用来帮助使用指令和样式指南:)谢谢@JohnRuddell!是的,静态也解决了这个问题,但我也不需要data()方法中的这些变量!我不知道那是你:D@JohnRuddell伙计,呵呵,最近怎么样?顺便说一句,在React/Typescript lmk中构建这个你认为的:哈哈,我很久以前就从那个地方搬来了!我们应该找个时间赶上:)我今晚去看看
<script lang="ts">
import { Component, Prop, Vue } from 'vue-property-decorator'
import { MOON_HOLDINGS_LINK, TWITTER_LINK } from '@/constants/links'

@Component
export default class HelloWorld extends Vue {
  @Prop() private title!: string

  data(): any {
    return {
      moonLink: MOON_HOLDINGS_LINK,
    }
  }
}
</script>