Можно ли исключить ключевое слово `this` в приложении vue.js? - PullRequest
0 голосов
/ 30 августа 2018

На самом деле я следую Douglas Crockford jslint.

Когда я это использую, выдается предупреждение.

[jslint] Неожиданное «это». (Unexpected_a)

Я не вижу решения этой ошибки. Не говорите добавить this в jslist.options и пометьте его как истинное.

Есть ли какой-либо подход без использования этого?

EDIT ДОБАВЛЕННЫЙ КОД

// здесь какой-то компонент 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. Как вы можете избежать этого?

https://jsfiddle.net/himmsharma99/ctj4sm7f/5/

Ответы [ 3 ]

0 голосов
/ 25 сентября 2018

В опубликованном вами коде, по-видимому, отсутствует } после определения getRefreshQueue. Это не та ошибка, которую описывает ваш линтер, но, возможно, ее перепутала ошибка синтаксиса?

0 голосов
/ 27 сентября 2018

Как уже говорили другие, вам лучше просто отключить линтер или переключиться на 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 внутри объекта данных. Обратите внимание, что это обязательно.

0 голосов
/ 20 сентября 2018

как я уже сказал в комментариях:

использование this является неотъемлемой частью работы vue.js внутри компонента. Вы можете узнать больше о том, как он прокси и отслеживает зависимости здесь: https://vuejs.org/v2/api/#Options-Data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...