pytania powinny być wystarczająco jasne :). Ale widzę, że ktoś używa:
<button @click="function()">press</button>
Ktoś używa:
<button v-on:click="function()">press</button>
Ale tak naprawdę jaka jest różnica między tymi dwoma (jeśli istnieje)
pytania powinny być wystarczająco jasne :). Ale widzę, że ktoś używa:
<button @click="function()">press</button>
Ktoś używa:
<button v-on:click="function()">press</button>
Ale tak naprawdę jaka jest różnica między tymi dwoma (jeśli istnieje)
Odpowiedzi:
Nie ma różnicy między tymi dwoma, jeden jest tylko skrótem dla drugiego.
Prefiks v- służy jako wizualna wskazówka do identyfikacji atrybutów specyficznych dla Vue w szablonach. Jest to przydatne, gdy używasz Vue.js do zastosowania dynamicznego zachowania do niektórych istniejących znaczników, ale może wydawać się rozwlekłe w przypadku niektórych często używanych dyrektyw. Jednocześnie potrzeba przedrostka v- staje się mniej ważna, gdy tworzysz SPA, w którym Vue.js zarządza każdym szablonem.
<!-- full syntax -->
<a v-on:click="doSomething"></a>
<!-- shorthand -->
<a @click="doSomething"></a>
Źródło: oficjalna dokumentacja .
strongly-recommended
i recommended
z pamięcią eslint-plugin-Vue. github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/…
v-bind
i v-on
są dwiema często używanymi dyrektywami w szablonie vuejs html. Więc podali skrótowy zapis dla nich obu w następujący sposób:
Można wymienić v-on:
z@
v-on:click='someFunction'
tak jak:
@click='someFunction'
Inny przykład:
v-on:keyup='someKeyUpFunction'
tak jak:
@keyup='someKeyUpFunction'
Podobnie v-bind
z:
v-bind:href='var1'
Można zapisać jako:
:href='var1'
Mam nadzieję, że to pomoże!
Mogą wyglądać trochę inaczej niż normalny HTML, ale: i @ są prawidłowymi znakami dla nazw atrybutów i wszystkie przeglądarki obsługiwane przez Vue.js mogą je poprawnie przeanalizować. Ponadto nie pojawiają się w końcowym renderowanym znaczniku. Skrócona składnia jest całkowicie opcjonalna, ale prawdopodobnie docenisz ją, gdy dowiesz się więcej o jej użyciu później.
Źródło: oficjalna dokumentacja .