实际上,我正在关注Douglas Crockford
jslint。
使用它时会发出警告。
[jslint]意外的“ this”。 (unexpected_a)
我看不到该错误的任何解决方案。不要说在jslist.options中添加this
并将其标记为true。
有没有不用这个的方法吗?
编辑 附加代码
//这里有一些vue组件
<script>
export default {
name: "RefereshPage",
data() {
return {
progressValue: 0
}
},
methods:{
getRefreshQueue(loader){
console.log(this.progressValue); // ERROR come here [jslint] Unexpected 'this'. (unexpected_a)
}
}
}
</script>
查看此jsfiddle。您如何避免使用它?
答案 0 :(得分:4)
我已经在评论中指出:
使用$statement = $db->prepare('insert into _table (column1, column2, etc.) values (?, ?, etc.)
if (isset($_GET['var']) || isset($_GET['var1'])) {
$pieces=explode("delimeter", $var);
// $data = array($somevar, $someothervar, $pieces[0], pieces[1], etc.);
} else {
// other things to do with // $data = array($somevar, $someothervar, etc.);
}
$statement->execute($data);
是vue.js如何在组件中工作的组成部分。您可以在此处详细了解它如何代理并跟踪依赖关系:https://vuejs.org/v2/api/#Options-Data
答案 1 :(得分:2)
正如其他人所说,最好不要启用lint或改用ESLint。但是,如果您坚持要采取一种解决方法,则可以在vue实例上使用mixin和$mount
方法,以避免完全使用this
..
let vm;
const weaselMixin = {
methods: {
getdata() {
console.log(vm.users.foo.name);
}
},
mounted: function () {
vm.getdata();
}
};
vm = new Vue({
mixins: [weaselMixin],
data: {
users: {
foo: {
name: "aa"
}
}
}
});
vm.$mount('#app');
如您所见,这只会使应该是相当简单的组件复杂化。它只是表明您不应该为了满足您的短毛而改变vue的工作方式。
我建议您通过this article。这部分特别重要..
Vue.js可以在 this 上下文中使用我们的数据和方法。因此,通过编写
this.firstName
,我们可以访问数据对象内的firstName
属性。请注意,此是必需的。
答案 2 :(得分:0)
在您发布的代码中,getRefreshQueue定义后似乎缺少}
。这不是您的linter所描述的错误,但可能会因为语法错误而感到困惑?
答案 3 :(得分:0)
可以使用新的Composition API。 Vue 3将具有内置支持,但是您可以使用this package获得Vue 2支持。
不含this
的组件示例(来自vuejs.org):
<template>
<button @click="increment">
Count is: {{ state.count }}, double is: {{ state.double }}
</button>
</template>
<script>
import { reactive, computed } from 'vue'
export default {
setup() {
const state = reactive({
count: 0,
double: computed(() => state.count * 2)
})
function increment() {
state.count++
}
return {
state,
increment
}
}
}
</script>