v-bind和{{}}之间的区别?

时间:2016-04-01 17:54:47

标签: vue.js

我有一个输入字段,值字段传递存储在Vuex中的字符串。 对输入字段更改进行去抖动,并将新字符串同步到Vuex。

当这样绑定:value="vuexState.myString时,键入时,光标会跳到行尾。

当像value={{vuexState.myString}}这样绑定时,光标会保持原样。

根据指南:http://vuejs.org/guide/syntax.html#Arguments 这两个应该是相同的,{{ }}样式在内部转换为:bind。这可能是个错误吗?

我的理论是发生光标跳跃是因为vuex状态更改重新呈现输入并且{{ }}样式仅插入一次,而绑定语法在每次更改时重新呈现输入。

我目前正在使用value={{vuexState.myString}},但我想知道发生了什么,或者是否有更好的方法来执行此操作。

3 个答案:

答案 0 :(得分:8)

它位于关于Interpolation的文档中,已被弃用(请参阅。Migration guit from 1.x

已过时

这是旧方式

<div class="btn btn-primary hint--top {{class}}"></div>

解决方案

改为使用Javascript表达式:

<div v-bind:class="'btn btn-success hint--top '+ class "></div>

答案 1 :(得分:2)

看看控制台,似乎已经弃用了支持冒号语法或v-bind

vue.js:2237 [Vue warn]: foo="{{foo}}": Interpolation inside attributes has been deprecated. Use v-bind or the colon shorthand instead. 

答案 2 :(得分:0)

V-文本:&#39;东西&#39; === {{something}}