Разница между v-bind и {{}}?
У меня есть поле ввода, в котором поле значения передается строкой, хранящейся в Vuex.
Изменения полей ввода дебют и новая строка синхронизирована с Vuex.
При привязке, подобной этому :value="vuexState.myString
, при наборе текста курсор переходит к концу строки.
При привязке как value={{vuexState.myString}}
курсор остается там, где он находится.
Согласно руководству: http://vuejs.org/guide/syntax.html#Arguments
Эти два значения должны быть одинаковыми, при этом стиль {{ }}
внутренне преобразован в :bind
. Может ли это быть ошибкой?
Моя теория заключается в том, что переключение курсора происходит потому, что изменение состояния vuex повторно отображает вход и что стиль {{ }}
интерполируется только один раз, в то время как синтаксис привязки повторно вводит входные данные при каждом изменении.
В настоящее время я использую value={{vuexState.myString}}
, но я хотел бы знать, что происходит, или если есть лучший способ сделать это.
Ответы
Ответ 1
Это в документации о Interpolation и устарел (см. Гид миграции от 1.x)
Устаревшие
Это старый способ
<div class="btn btn-primary hint--top {{class}}"></div>
Решение
Вместо этого используйте выражение Javascript:
<div v-bind:class="'btn btn-success hint--top '+ class "></div>
Ответ 2
Взгляните на консоль, кажется, что она устарела в пользу синтаксиса двоеточия или v-bind
:
vue.js:2237 [Vue warn]: foo="{{foo}}": Interpolation inside attributes has been deprecated. Use v-bind or the colon shorthand instead.
Ответ 3
v-text:'something' === {{something}}