10 Tipps und Tricks, mit denen Sie der beste Entwickler für VueJS werden können

Hier ist eine kostenlose Übersetzung des Artikels " 10 Tipps und Tricks, um Sie zu einem besseren VueJS-Entwickler zu machen " von Dev.to. Der Autor informiert uns über interessante und nützliche Optionen für die Verwendung der üblichen VueJS-Tools.


Einführung


Ich arbeite sehr gerne mit VueJS und jedes Mal, wenn ich das mache, tauche ich tiefer in seine Fähigkeiten und Funktionen ein. In diesem Artikel präsentiere ich Ihnen 10 coole Tipps und Tricks, die Sie wahrscheinlich nicht kannten, und werde versuchen, Ihnen zu helfen, der beste Entwickler auf VueJS zu werden.


Lassen Sie uns die Syntax der Slots schön machen


Mit der Veröffentlichung von Vue 2.6 wurden Abkürzungen für Slots verfügbar, die als Ereignisse (z. B. die Abkürzung @click für v-on:click ) oder als Doppelpunkt für die Datenbindung ( :src ) verwendet werden können. Wenn Sie beispielsweise eine Tabellenkomponente haben, können Sie die folgende Funktion verwenden :


 <template> ... <my-table> <template #row="{ item }"> /* some content here. You can freely use 'item' here */ </template> </my-table> ... </template> 

$ on ('hook:')


Dies ist eine coole Funktion, die Sie verwenden können, wenn Sie einen benutzerdefinierten Ereignis-Listener oder ein Plugin eines Drittanbieters in den created oder beforeDestroy Hooks definieren und diese im beforeDestroy Hook entfernen beforeDestroy , um Speicherlecks zu vermeiden. Mit $on('hook:') Sie ein Ereignis in nur einem Hook definieren oder entfernen.


 mounted() { const aThirdPartyPlugin = aThirdPartyPlugin() this.$on('hook:beforeDestroy', () => { aThirdPartyPlugin.destroy() }) } 

Validierungsrequisiten


Vielleicht wissen Sie bereits, dass es möglich ist, Ihre Requisiten mit primitiven Werten wie String , Number oder Object zu validieren. Sie können jedoch auch einen benutzerdefinierten Validator erstellen, um beispielsweise ein Array von Zeichenfolgen zu überprüfen:


 alertType: { validator: value => ['signup', 'login', 'logout'].includes(value) } 

Dynamische Direktivenargumente


Eine der coolsten Funktionen von VueJS 2.6 ist die Möglichkeit, Argumente für Komponentenanweisungen dynamisch zu bestimmen. Angenommen, Sie haben eine Schaltflächenkomponente und möchten unter bestimmten Bedingungen das Click Ereignis und in allen anderen Fällen das DoubleClick Ereignis abhören. Hier ist ein Fall, in dem eine solche Richtlinie nützlich sein könnte:


 <template> ... <aButton @[someEvent]="handleSomeEvent()"/> ... </template> <script> ... data(){ return{ ... someEvent: someCondition ? "click" : "dblclick" } }, methods:{ handleSomeEvent(){ // handle some event } } ... </script> 

Und was wirklich cool ist -> das ist, dass Sie diese Vorlage auf dynamische HTML-Attribute, Requisiten und vieles mehr anwenden können!


Wiederverwendung von Komponenten für ähnliche Routen


Manchmal haben Sie unterschiedliche Routen, die eine Reihe von Komponenten verwenden. Wenn Sie zwischen solchen Routen wechseln, wird die allgemeine Komponente standardmäßig nicht neu gezeichnet, da Vue diese Komponente für eine bessere Leistung wiederverwendet. Wenn Sie diese Komponenten jedoch neu zeichnen möchten, können Sie die Eigenschaft :key in der Router-View-Component :


 <template> <router-view :key="$route.fullPath"></router-view> </template> 

Übergeben Sie alle Requisiten von der übergeordneten an die untergeordnete Komponente


Dies ist eine wirklich coole Funktion, um alle Requisiten von der übergeordneten Komponente an die untergeordnete Komponente weiterzugeben. Diese Methode ist praktisch, wenn Sie beispielsweise die Wrapper-Komponente verwenden. Anstatt alle Eigenschaften nacheinander zu übergeben, müssen Sie sie nur alle auf einmal übergeben:


 <template> <childComponent v-bind="$props"/> </template> 

Stattdessen:


 <template> <childComponent :prop1="prop1" :prop2="prop2" :prop3="prop3" :prop4="prop4" ... /> </template> 

Übergeben Sie alle Ereignis-Listener von der übergeordneten an die untergeordnete Komponente


Wenn Sie eine untergeordnete Komponente haben, die nicht root für die übergeordnete Komponente ist, können Sie alle Ereignis-Listener wie folgt von übergeordnet zu untergeordnet weitergeben:


 <template> <div> ... <childComponent v-on="$listeners"/> ... </div> </template> 

Wenn sich die untergeordnete Komponente im Stammverzeichnis des übergeordneten Elements befindet, benötigen Sie keinen solchen Trick, und alle Ereignisse sind standardmäßig verfügbar.


$ createElement


Jede Vue-Instanz hat standardmäßig Zugriff auf die $createElement , mit der virtuelle Knoten erstellt und zurückgegeben werden. Dies kann beispielsweise verwendet werden, um Markup in Methoden zu verwenden, die an die v-html Direktive übergeben werden können. In Funktionskomponenten steht diese Methode als erstes Argument für die render .


Verwenden von JSX


Ab Vue CLI 3 wird standardmäßig die JSX-Unterstützung angezeigt. Jetzt können Sie Ihren Code mit JSX schreiben (z. B. wenn Sie nach der Reaktion besser daran gewöhnt sind). Dies kann beispielsweise auch zum Schreiben von Funktionskomponenten praktischer sein. Wenn Sie Vue CLI 3 , können Sie JSX in Ihrem Projekt mit babel-plugin-transform-vue-jsx unterstützen.


Benutzerdefiniertes V-Modell


Standardmäßig ist v-model das, was wir syntaktischen Zucker über @input und :value Ereignissen nennen. Sie können jedoch die model in Ihrer Vue-Komponente angeben und festlegen, welches Ereignis und welche Requisiten verwendet werden sollen:


 export default: { model: { event: 'change', prop: 'checked' } } 

Fazit


Ich hoffe, ich konnte Ihnen einige Tipps geben, damit Sie der beste VueJS-Entwickler werden.

Source: https://habr.com/ru/post/de471212/


All Articles