Разница между 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}}