Обновить переменную во Vue.js не вызвав Watch

149
18 ноября 2018, 01:50

Можно ли во Vue.js скрыто от watcher обновить переменную?

Answer 1

Вот так, например:

var app = new Vue({ 
  el: '#app', 
  data () { 
    return { 
      variable: 1337, 
      lock: false 
    }; 
  }, 
  methods: { 
    change () { 
      this.variable = Math.random() * 1000 | 0 
    } 
  }, 
  watch: { 
    variable () { 
      if (this.lock) 
        return 
       
      alert('Вы изменили!') 
      this.lock = true 
    } 
  } 
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> 
 
<div id="app" style="height: 1000px; background: yellow;"> 
  Значение: {{ variable }}<br> 
  Слежение: {{ !lock }}<br> 
  <button @click="change">Изменить</button> 
  <button @click="lock = false">Снова следить</button> 
</div>

Codepen

READ ALSO
Оптимизация javascript canvas

Оптимизация javascript canvas

Вопрос возможно глупый, но анимация отображается как будто бы в замедленном времениЯ так понял надо оптимизировать код

156
Как вставить карту с геокодированием?

Как вставить карту с геокодированием?

Как вставить карту как на странице в Яндексе https://techyandex

140
sapui5 smartfilterbar filter positioning

sapui5 smartfilterbar filter positioning

In my app i have smart filter bar with smart filtersI'm using annotations on front end (no possibility to generate it from back-end, unfortunately)

126
Изменение рендера объекта vue.js

Изменение рендера объекта vue.js

Пример: есть объект который приходит с сервера со значениями

124