Как уже говорили другие, вам лучше просто отключить линтер или переключиться на ESLint. Но если вы настаиваете на обходном пути, вы можете использовать миксин и метод $mount
в экземпляре vue, чтобы вообще не использовать 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');
См. Модифицированную JSFiddle
Как видите, это только усложняет то, что должно быть довольно простым компонентом. Это говорит лишь о том, что вы не должны нарушать работу vue, просто чтобы удовлетворить свой вкус.
Я бы посоветовал вам прочесть эту статью . Особенно важна эта часть ..
Vue.js проксирует наши данные и методы, доступные в контексте this . Таким образом, написав this.firstName
, мы можем получить доступ к свойству firstName
внутри объекта данных. Обратите внимание, что это обязательно.