Inhaltsverzeichnis
1. Obligatorisch" >1. Obligatorisch
2 . Dringend empfohlen (verbessert die Lesbarkeit)" >2 . Dringend empfohlen (verbessert die Lesbarkeit)
三、推荐" >三、推荐
四、谨慎使用 (有潜在危险的模式)" >四、谨慎使用 (有潜在危险的模式)
Heim Web-Frontend js-Tutorial Was sind die Spezifikationen für die Vue-Frontend-Entwicklung?

Was sind die Spezifikationen für die Vue-Frontend-Entwicklung?

Jun 02, 2018 am 11:26 AM
Welche 开发 规范

Dieses Mal werde ich Ihnen die Spezifikationen für die Vue-Frontend-Entwicklung und die Vorsichtsmaßnahmen für die Vue-Frontend-Entwicklungsspezifikationen vorstellen. Das Folgende ist ein praktischer Fall, schauen wir uns das an.

Basierend auf dem offiziellen Vue-Styleguide

1. Obligatorisch

1

Komponentennamen sollten immer aus mehreren Wörtern bestehen, mit Ausnahme der Stammkomponente App.

Positivbeispiel:

export default {
 name: 'TodoItem',
 // ...
}
反例:
export default {
 name: 'Todo',
 // ...
}
Nach dem Login kopieren

2. Komponentendaten

Die Daten der Komponente müssen eine Funktion sein.

Bei Verwendung des Datenattributs in einer Komponente (irgendwo außer New Vue) muss sein Wert eine Funktion sein, die ein Objekt zurückgibt.

Positivbeispiel:

// In a .vue file
export default {
 data () {
 return {
 foo: 'bar'
 }
 }
}
// 在一个 Vue 的根实例上直接使用对象是可以的,
// 因为只存在一个这样的实例。
new Vue({
 data: {
 foo: 'bar'
 }
})
Nach dem Login kopieren

Gegenbeispiel:

export default {
 data: {
 foo: 'bar'
 }
}
Nach dem Login kopieren

3. Requisitendefinition

Die Requisitendefinition sollte so detailliert wie möglich sein.

In dem von Ihnen übermittelten Code sollte die Definition von „prop“ so detailliert wie möglich sein und zumindest den Typ angeben.

Positivbeispiel:

props: {
 status: String
}
// 更好的做法!
props: {
 status: {
 type: String,
 required: true,
 validator: function (value) {
 return [
 'syncing',
 'synced',
 'version-conflict',
 'error'
 ].indexOf(value) !== -1
 }
 }
}
Nach dem Login kopieren

Gegenbeispiel:

// 这样做只有开发原型系统时可以接受
props: ['status']
Nach dem Login kopieren

4. Schlüsselwert für v-for festlegen

Schlüssel immer mit v-for verwenden.

Key muss immer mit v-for für eine Komponente verwendet werden, um den Status der internen Komponente und ihrer Unterbäume beizubehalten. Selbst die Beibehaltung eines vorhersehbaren Verhaltens von Elementen, wie z. B. der Objektkonstanz in Animationen, ist eine gute Vorgehensweise.

Positivbeispiel:

<ul>
 <li
 v-for="todo in todos"
 :key="todo.id"
 >
 {{ todo.text }}
 </li>
</ul>
Nach dem Login kopieren

Gegenbeispiel:

<ul>
 <li v-for="todo in todos">
 {{ todo.text }}
 </li>
</ul>
Nach dem Login kopieren

5. Vermeiden Sie die gemeinsame Verwendung von v-if und v-for

Verwenden Sie niemals v-if und v -for werden gleichzeitig für dasselbe Element verwendet.

Im Allgemeinen tun wir dies in zwei häufigen Situationen:

Um Elemente in einer Liste zu filtern (z. B. v-for="user in users" v-if="user.isActive"). Ersetzen Sie in diesem Fall „users“ durch eine berechnete Eigenschaft (z. B. „activeUsers“), die die gefilterte Liste zurückgibt.

Um das Rendern von Listen zu vermeiden, die ausgeblendet werden sollten (z. B. v-for="user in users" v-if="shouldShowUsers"). Verschieben Sie in diesem Fall bitte das v-if in das Containerelement (z. B. ul, ol).

Positivbeispiel:

<ul v-if="shouldShowUsers">
 <li
 v-for="user in users"
 :key="user.id"
 >
 {{ user.name }}
 </li>
</ul>
Nach dem Login kopieren

Gegenbeispiel:

<ul>
 <li
 v-for="user in users"
 v-if="shouldShowUsers"
 :key="user.id"
 >
 {{ user.name }}
 </li>
</ul>
Nach dem Login kopieren

6. Legen Sie den Bereich für Komponentenstile fest

Für Anwendungen können Stile in App-Komponenten und Layoutkomponenten der obersten Ebene global sein. aber alle anderen Komponenten sollten einen Gültigkeitsbereich haben.

Diese Regel gilt nur für Einzeldateikomponenten. Sie müssen das Gültigkeitsbereichsattribut nicht verwenden, um Bereiche über CSS-Module festzulegen. Natürlich können Sie auch andere Bibliotheken oder Konventionen verwenden

In jedem Fall sollten wir für Komponentenbibliotheken lieber klassenbasierte Strategien anstelle von bereichsbezogenen Funktionen verwenden >

Dies erleichtert das Überschreiben interner Stile : Verwendung von für Menschen lesbaren Klassennamen ohne hohe Selektorpriorität, die weniger Konflikte verursachen

Beispiel:

<template>
 <button class="c-Button c-Button--close">X</button>
</template>
<!-- 使用 BEM 约定 -->
<style>
.c-Button {
 border: none;
 border-radius: 2px;
}
.c-Button--close {
 background-color: red;
}
</style>
Nach dem Login kopieren
Gegenbeispiel:

<template>
 <button class="btn btn-close">X</button>
</template>
<style>
.btn-close {
 background-color: red;
}
</style>
<template>
 <button class="button button-close">X</button>
</template>
<!-- 使用 `scoped` 特性 -->
<style scoped>
.button {
 border: none;
 border-radius: 2px;
}
.button-close {
 background-color: red;
}
</style>
Nach dem Login kopieren

2 . Dringend empfohlen (verbessert die Lesbarkeit)

1. Komponentendatei

Solange es ein Build-System gibt, das Dateien zusammenfügen kann, trennen Sie jede Komponente in separate Dateien

Wenn Sie eine Komponente bearbeiten oder die Verwendung einer Komponente überprüfen müssen, können Sie sie schneller finden

Genau. Beispiel:

components/
|- TodoList.vue
|- TodoItem.vue
Nach dem Login kopieren
2. Fall von Einzeldatei-Komponentendateien

Der Dateiname einer Einzeldatei-Komponente sollte entweder immer mit einem großgeschriebenen Wort beginnen (PascalCase)

Positivbeispiel:

V
ue.component('TodoList', {
 // ...
})
Vue.component('TodoItem', {
 // ...
})
Nach dem Login kopieren
Gegenbeispiel:

components/
|- MyComponent.vue
Nach dem Login kopieren
3. Name der Basiskomponente

Basiskomponente, die bestimmte Stile und Konventionen anwendet (d. h. Anzeigeklassen, logische oder zustandslose Komponenten), sollte alle mit einem bestimmten Präfix beginnen , wie Base, App oder V.

Positivbeispiel:

components/
|- myComponent.vue
|- mycomponent.vue
Nach dem Login kopieren
Negativbeispiel:

components/
|- BaseButton.vue
|- BaseTable.vue
|- BaseIcon.vue
Nach dem Login kopieren
4. Singleton-Komponentenname

Eine Komponente, die sollte nur eine einzige aktive Instanz haben, sollte mit dem Präfix benannt werden, um seine Einzigartigkeit zu zeigen.

这不意味着组件只可用于一个单页面,而是每个页面只使用一次。这些组件永远不接受任何 prop,因为它们是为你的应用定制的,而不是它们在你的应用中的上下文。如果你发现有必要添加 prop,那就表明这实际上是一个可复用的组件,只是目前在每个页面里只使用一次。

正例:

components/
|- TheHeading.vue
|- TheSidebar.vue
Nach dem Login kopieren

反例:

components/
|- Heading.vue
|- MySidebar.vue
Nach dem Login kopieren

5. 紧密耦合的组件名

和父组件紧密耦合的子组件应该以父组件名作为前缀命名。

如果一个组件只在某个父组件的场景下有意义,这层关系应该体现在其名字上。因为编辑器通常会按字母顺序组织文件,所以这样做可以把相关联的文件排在一起。

正例:

components/
|- TodoList.vue
|- TodoListItem.vue
|- TodoListItemButton.vue
components/
|- SearchSidebar.vue
|- SearchSidebarNavigation.vue
Nach dem Login kopieren

反例:

components/
|- SearchSidebar.vue
|- NavigationForSearchSidebar.vue
Nach dem Login kopieren

6. 组件名中的单词顺序

组件名应该以高级别的 (通常是一般化描述的) 单词开头,以描述性的修饰词结尾。

正例:

components/
|- SearchButtonClear.vue
|- SearchButtonRun.vue
|- SearchInputQuery.vue
|- SearchInputExcludeGlob.vue
|- SettingsCheckboxTerms.vue
|- SettingsCheckboxLaunchOnStartup.vue
Nach dem Login kopieren

反例:

components/
|- ClearSearchButton.vue
|- ExcludeFromSearchInput.vue
|- LaunchOnStartupCheckbox.vue
|- RunSearchButton.vue
|- SearchInput.vue
|- TermsCheckbox.vue
Nach dem Login kopieren

7. 模板中的组件名大小写

总是 PascalCase 的

正例:

<!-- 在单文件组件和字符串模板中 -->
<MyComponent/>
Nach dem Login kopieren

反例:

<!-- 在单文件组件和字符串模板中 -->
<mycomponent/>
<!-- 在单文件组件和字符串模板中 -->
<myComponent/>
Nach dem Login kopieren

8. 完整单词的组件名

组件名应该倾向于完整单词而不是缩写。

正例:

components/
|- StudentDashboardSettings.vue
|- UserProfileOptions.vue
Nach dem Login kopieren

反例:

components/
|- SdSettings.vue
|- UProfOpts.vue
Nach dem Login kopieren

9. 多个特性的元素

多个特性的元素应该分多行撰写,每个特性一行。

正例:

<img
 src="https://vuejs.org/images/logo.png"
 alt="Vue Logo"
>
<MyComponent
 foo="a"
 bar="b"
 baz="c"
/>
Nach dem Login kopieren

反例:

<img src="https://vuejs.org/images/logo.png" alt="Vue Logo">
<MyComponent foo="a" bar="b" baz="c"/>
Nach dem Login kopieren

10. 模板中简单的表达式

组件模板应该只包含简单的表达式,复杂的表达式则应该重构为计算属性或方法。
复杂表达式会让你的模板变得不那么声明式。我们应该尽量描述应该出现的是什么,而非如何计算那个值。而且计算属性和方法使得代码可以重用。

正例:

<!-- 在模板中 -->
{{ normalizedFullName }}
// 复杂表达式已经移入一个计算属性
computed: {
 normalizedFullName: function () {
 return this.fullName.split(' ').map(function (word) {
 return word[0].toUpperCase() + word.slice(1)
 }).join(' ')
 }
}
Nach dem Login kopieren

反例:

{{
 fullName.split(' ').map(function (word) {
 return word[0].toUpperCase() + word.slice(1)
 }).join(' ')
}}
Nach dem Login kopieren

11. 简单的计算属性

正例:

computed: {
 basePrice: function () {
 return this.manufactureCost / (1 - this.profitMargin)
 },
 discount: function () {
 return this.basePrice * (this.discountPercent || 0)
 },
 finalPrice: function () {
 return this.basePrice - this.discount
 }
}
Nach dem Login kopieren

反例:

computed: {
 price: function () {
 var basePrice = this.manufactureCost / (1 - this.profitMargin)
 return (
 basePrice -
 basePrice * (this.discountPercent || 0)
 )
 }
}
Nach dem Login kopieren

12. 带引号的特性值

非空 HTML 特性值应该始终带引号 (单引号或双引号,选你 JS 里不用的那个)。
在 HTML 中不带空格的特性值是可以没有引号的,但这样做常常导致带空格的特征值被回避,导致其可读性变差。

正例:

<AppSidebar :style="{ width: sidebarWidth + &#39;px&#39; }">
Nach dem Login kopieren

反例:

<AppSidebar :style={width:sidebarWidth+&#39;px&#39;}>
Nach dem Login kopieren

13. 指令缩写

都用指令缩写 (用 : 表示 v-bind: 和用 @ 表示 v-on:)

正例:

<input
 @input="onInput"
 @focus="onFocus"
>
Nach dem Login kopieren

反例:

<input
 v-bind:value="newTodoText"
 :placeholder="newTodoInstructions"
>
Nach dem Login kopieren

三、推荐

1. 单文件组件的顶级元素的顺序

单文件组件应该总是让

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Vier empfohlene KI-gestützte Programmiertools Vier empfohlene KI-gestützte Programmiertools Apr 22, 2024 pm 05:34 PM

Dieses KI-gestützte Programmiertool hat in dieser Phase der schnellen KI-Entwicklung eine große Anzahl nützlicher KI-gestützter Programmiertools zu Tage gefördert. KI-gestützte Programmiertools können die Entwicklungseffizienz verbessern, die Codequalität verbessern und Fehlerraten reduzieren. Sie sind wichtige Helfer im modernen Softwareentwicklungsprozess. Heute wird Dayao Ihnen 4 KI-gestützte Programmiertools vorstellen (und alle unterstützen die C#-Sprache). https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot ist ein KI-Codierungsassistent, der Ihnen hilft, Code schneller und mit weniger Aufwand zu schreiben, sodass Sie sich mehr auf Problemlösung und Zusammenarbeit konzentrieren können. Git

Welcher KI-Programmierer ist der beste? Entdecken Sie das Potenzial von Devin, Tongyi Lingma und SWE-Agent Welcher KI-Programmierer ist der beste? Entdecken Sie das Potenzial von Devin, Tongyi Lingma und SWE-Agent Apr 07, 2024 am 09:10 AM

Am 3. März 2022, weniger als einen Monat nach der Geburt von Devin, dem weltweit ersten KI-Programmierer, entwickelte das NLP-Team der Princeton University einen Open-Source-KI-Programmierer-SWE-Agenten. Es nutzt das GPT-4-Modell, um Probleme in GitHub-Repositorys automatisch zu lösen. Die Leistung des SWE-Agenten auf dem SWE-Bench-Testsatz ist ähnlich wie die von Devin, er benötigt durchschnittlich 93 Sekunden und löst 12,29 % der Probleme. Durch die Interaktion mit einem dedizierten Terminal kann der SWE-Agent Dateiinhalte öffnen und durchsuchen, die automatische Syntaxprüfung verwenden, bestimmte Zeilen bearbeiten sowie Tests schreiben und ausführen. (Hinweis: Der obige Inhalt stellt eine geringfügige Anpassung des Originalinhalts dar, die Schlüsselinformationen im Originaltext bleiben jedoch erhalten und überschreiten nicht die angegebene Wortbeschränkung.) SWE-A

Erfahren Sie, wie Sie mobile Anwendungen mit der Go-Sprache entwickeln Erfahren Sie, wie Sie mobile Anwendungen mit der Go-Sprache entwickeln Mar 28, 2024 pm 10:00 PM

Tutorial zur Entwicklung mobiler Anwendungen in der Go-Sprache Da der Markt für mobile Anwendungen weiterhin boomt, beginnen immer mehr Entwickler damit, sich mit der Verwendung der Go-Sprache für die Entwicklung mobiler Anwendungen zu befassen. Als einfache und effiziente Programmiersprache hat die Go-Sprache auch großes Potenzial für die Entwicklung mobiler Anwendungen gezeigt. In diesem Artikel wird detailliert beschrieben, wie die Go-Sprache zum Entwickeln mobiler Anwendungen verwendet wird, und es werden spezifische Codebeispiele angehängt, um den Lesern den schnellen Einstieg und die Entwicklung eigener mobiler Anwendungen zu erleichtern. 1. Vorbereitung Bevor wir beginnen, müssen wir die Entwicklungsumgebung und die Tools vorbereiten. Kopf

Zusammenfassung der fünf beliebtesten Go-Sprachbibliotheken: wesentliche Tools für die Entwicklung Zusammenfassung der fünf beliebtesten Go-Sprachbibliotheken: wesentliche Tools für die Entwicklung Feb 22, 2024 pm 02:33 PM

Zusammenfassung der fünf beliebtesten Go-Sprachbibliotheken: wesentliche Werkzeuge für die Entwicklung, die spezifische Codebeispiele erfordern Seit ihrer Geburt hat die Go-Sprache große Aufmerksamkeit und Anwendung gefunden. Als aufstrebende effiziente und prägnante Programmiersprache ist die schnelle Entwicklung von Go untrennbar mit der Unterstützung umfangreicher Open-Source-Bibliotheken verbunden. In diesem Artikel werden fünf beliebte Go-Sprachbibliotheken vorgestellt. Diese Bibliotheken spielen eine wichtige Rolle bei der Go-Entwicklung und bieten Entwicklern leistungsstarke Funktionen und praktische Entwicklungserfahrung. Um die Verwendung und Funktion dieser Bibliotheken besser zu verstehen, werden wir sie gleichzeitig anhand konkreter Codebeispiele erläutern.

Welche Linux-Distribution eignet sich am besten für die Android-Entwicklung? Welche Linux-Distribution eignet sich am besten für die Android-Entwicklung? Mar 14, 2024 pm 12:30 PM

Die Android-Entwicklung ist eine arbeitsreiche und spannende Aufgabe, und die Auswahl einer geeigneten Linux-Distribution für die Entwicklung ist besonders wichtig. Welche der vielen Linux-Distributionen eignet sich am besten für die Android-Entwicklung? In diesem Artikel wird dieses Problem unter verschiedenen Aspekten untersucht und spezifische Codebeispiele aufgeführt. Werfen wir zunächst einen Blick auf einige derzeit beliebte Linux-Distributionen: Ubuntu, Fedora, Debian, CentOS usw. Sie alle haben ihre eigenen Vorteile und Eigenschaften.

Erkundung der Front-End-Technologie der Go-Sprache: eine neue Vision für die Front-End-Entwicklung Erkundung der Front-End-Technologie der Go-Sprache: eine neue Vision für die Front-End-Entwicklung Mar 28, 2024 pm 01:06 PM

Als schnelle und effiziente Programmiersprache erfreut sich Go im Bereich der Backend-Entwicklung großer Beliebtheit. Allerdings assoziieren nur wenige Menschen die Go-Sprache mit der Front-End-Entwicklung. Tatsächlich kann die Verwendung der Go-Sprache für die Front-End-Entwicklung nicht nur die Effizienz verbessern, sondern Entwicklern auch neue Horizonte eröffnen. In diesem Artikel wird die Möglichkeit der Verwendung der Go-Sprache für die Front-End-Entwicklung untersucht und spezifische Codebeispiele bereitgestellt, um den Lesern ein besseres Verständnis dieses Bereichs zu erleichtern. In der traditionellen Frontend-Entwicklung werden häufig JavaScript, HTML und CSS zum Erstellen von Benutzeroberflächen verwendet

VSCode verstehen: Wofür wird dieses Tool verwendet? VSCode verstehen: Wofür wird dieses Tool verwendet? Mar 25, 2024 pm 03:06 PM

„VSCode verstehen: Wofür wird dieses Tool verwendet?“ „Als Programmierer, egal ob Sie Anfänger oder erfahrener Entwickler sind, können Sie auf den Einsatz von Codebearbeitungstools nicht verzichten.“ Unter vielen Bearbeitungstools ist Visual Studio Code (kurz VSCode) bei Entwicklern als Open-Source-, leichter und leistungsstarker Code-Editor sehr beliebt. Wofür genau wird VSCode verwendet? Dieser Artikel befasst sich mit den Funktionen und Verwendungsmöglichkeiten von VSCode und stellt spezifische Codebeispiele bereit, um den Lesern zu helfen

Ist PHP Front-End oder Back-End in der Webentwicklung? Ist PHP Front-End oder Back-End in der Webentwicklung? Mar 24, 2024 pm 02:18 PM

PHP gehört zum Backend in der Webentwicklung. PHP ist eine serverseitige Skriptsprache, die hauptsächlich zur Verarbeitung serverseitiger Logik und zur Generierung dynamischer Webinhalte verwendet wird. Im Vergleich zur Front-End-Technologie wird PHP eher für Back-End-Vorgänge wie die Interaktion mit Datenbanken, die Verarbeitung von Benutzeranfragen und die Generierung von Seiteninhalten verwendet. Anschließend wird anhand konkreter Codebeispiele die Anwendung von PHP in der Backend-Entwicklung veranschaulicht. Schauen wir uns zunächst ein einfaches PHP-Codebeispiel zum Herstellen einer Verbindung zu einer Datenbank und zum Abfragen von Daten an:

See all articles