与@click和v-on的区别:点击Vuejs

Lor*_*rti 113 vue.js vuejs-directive

问题应该足够明确:).但我可以看到有人使用:

<button @click="function()">press</button>

有人用:

<button v-on:click="function()">press</button>

但真的两者之间有什么区别(如果存在的话)

Cob*_*way 135

两者之间没有区别,一个只是第二个的简写.

v-前缀用作标识模板中特定于Vue的属性的可视提示.当您使用Vue.js将动态行为应用于某些现有标记时,这很有用,但对于某些常用指令可能会感到冗长.同时,当您构建一个Vue.js管理每个模板的SPA时,对v-前缀的需求变得不那么重要了.

<!-- full syntax -->
<a v-on:click="doSomething"></a>
<!-- shorthand -->
<a @click="doSomething"></a>
Run Code Online (Sandbox Code Playgroud)

资料来源:官方文件.

  • Vue 社区是否偏向 @ 或者只是 JetBrains 偏向抱怨 v-on 的使用? (2认同)
  • @KimmoHintikka是的,某种程度上偏爱快捷方式(@)。该规则包含在eslint-plugin-vue预设的“强烈推荐”和“推荐”中。https://github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/v-on-style.md (2认同)

Nit*_*mar 43

v-bind并且v-on是vuejs html模板中两个经常使用的指令.因此,他们为这两者提供了简写符号如下:

您可以替换v-on:使用@

v-on:click='someFunction'
Run Code Online (Sandbox Code Playgroud)

如:

@click='someFunction'
Run Code Online (Sandbox Code Playgroud)

另一个例子:

v-on:keyup='someKeyUpFunction'
Run Code Online (Sandbox Code Playgroud)

如:

@keyup='someKeyUpFunction'
Run Code Online (Sandbox Code Playgroud)

同样,v-bind:

v-bind:href='var1'
Run Code Online (Sandbox Code Playgroud)

可以写成:

:href='var1'
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!

  • @JakubStrebeyko,我不知道你在抱怨什么,但这是一个非常简洁的答案,也消除了我对普通冒号的困惑,我不知道它代表 v-bind。 (2认同)