Inhaltsverzeichnis
Komponentenverschachtelung
组件样式管理
作用域样式
CSS Modules
Scope-Stil
Heim Web-Frontend View.js Wie implementiert Vue Komponentenverschachtelung und Komponentenstilverwaltung?

Wie implementiert Vue Komponentenverschachtelung und Komponentenstilverwaltung?

Jun 27, 2023 pm 03:33 PM
vue 组件嵌套 样式管理

Vue.js ist ein leichtes JavaScript-Framework, das datengesteuerte, reaktionsfähige Aktualisierungsansichten bietet. Das Kernkonzept von Vue.js ist die Komponentisierung. Komponenten können Schaltflächen, Formulare, Modalboxen usw. sein, die frei kombiniert und in kleinere Komponenten aufgeteilt werden können. Die Komponentenverschachtelung und Stilverwaltung von Vue.js sind wesentliche Wissenspunkte in der Komponentenentwicklung. In diesem Artikel wird ausführlich erläutert, wie Komponentenverschachtelung und Stilverwaltung in Vue implementiert werden.

Komponentenverschachtelung

Komponentenverschachtelung bezieht sich auf die Platzierung einer Komponente in einer anderen Komponente, um eine Eltern-Kind-Komponentenbeziehung zu bilden, wobei Daten über die übergeordnete Komponente an die untergeordnete Komponente übergeben werden und die untergeordnete Komponente dadurch auch Daten an die übergeordnete Komponente übergeben kann Realisierung der Integration von Komponenten zwischen. Vue.js ist sehr praktisch, um die Verschachtelung von Komponenten zu implementieren. Sie müssen nur die Vorlage der untergeordneten Komponente in die übergeordnete Komponente einführen. Das Folgende ist ein einfaches Beispiel:

<template>
  <div>
    <h1>父组件</h1>
    <child-component></child-component>
  </div>
</template>

<script>
import childComponent from './childComponent.vue'

export default {
  components: {
    'child-component': childComponent
  }
}
</script>
Nach dem Login kopieren

Der obige Code ist eine übergeordnete Komponente. Führen Sie die untergeordnete Komponente über import ein und registrieren Sie die untergeordnete Komponente dann in components Fügen Sie es zur übergeordneten Komponente hinzu. Verwenden Sie Unterkomponenten innerhalb von Komponenten. Die Verschachtelung von Komponenten kann erreicht werden, indem die Vorlage der untergeordneten Komponente mithilfe von <child-component></child-component> in die übergeordnete Komponente eingefügt wird. import 引入子组件,然后在 components 中注册子组件,即可在父组件中使用子组件。在父组件中用 <child-component></child-component> 的方式引入子组件的模板,即可实现组件嵌套。

在子组件中,我们通常从父组件获取数据。Vue.js 中父子组件的数据传递主要通过 props$emit 两种方式实现。props 表示父组件向子组件传递数据,子组件通过接收 props 来获取父组件传递的数据。下面是一个简单的 props 例子:

<template>
  <div>
    <h2>子组件</h2>
    <p>父组件的名字是:{{ name }}</p>
  </div>
</template>

<script>
export default {
  props: ['name']
}
</script>
Nach dem Login kopieren

上面的代码是一个子组件,通过 props 定义了一个名为 name 的属性,父组件向子组件传递数据时通过 name 属性进行传递。在子组件的模板中,可以通过 {{ name }} 的方式获取父组件传递的数据。

在父组件中向子组件传递数据时,可以通过 v-bind 指令传递数据。如下所示:

<template>
  <div>
    <h1>父组件</h1>
    <child-component :name="fatherName"></child-component>
  </div>
</template>

<script>
import childComponent from './childComponent.vue'

export default {
  data () {
    return {
      fatherName: '张三'
    }
  },
  components: {
    'child-component': childComponent
  }
}
</script>
Nach dem Login kopieren

在父组件中,我们定义了一个名为 fatherName 的变量,用于存储父组件的名字。在子组件中,我们通过 props 来接收 fatherName

组件样式管理

组件样式管理是指在 Vue.js 中如何管理组件的样式,保证每个组件的样式不会互相影响,且易于维护。Vue.js 提供了两种方式来管理组件样式:作用域样式和 CSS Modules。

作用域样式

作用域样式是指在组件中使用 scoped 属性定义样式,使得该组件样式只对当前组件有效。例如:

<template>
  <div class="component">
    <h2 class="title">标题</h2>
  </div>
</template>

<style scoped>
.component {
  background-color: #f5f5f5;
  padding: 20px;
  border-radius: 5px;
}

.title {
  color: #333;
  font-size: 18px;
  margin-bottom: 10px;
}
</style>
Nach dem Login kopieren

在这个组件中,我们在样式标签上加上了 scoped 属性,即 style scoped。这样定义的样式只对当前的组件有效,不会影响其他组件或全局样式。

使用作用域样式有一个缺点:不支持深度选择器。在组件中,如果要使用深度选择器,必须在选择器前加上 /deep/ 或者 ,如下所示:

<template>
  <div class="component">
    <h2 class="title">标题</h2>
    <div class="sub-component">
      <span class="sub-title">子标题</span>
    </div>
  </div>
</template>

<style scoped>
.component {
  /deep/ .sub-component {
    background-color: #f1f1f1;
  }
  >>> .sub-title {
    color: red;
  }
}
</style>
Nach dem Login kopieren

上面的代码中,我们在 .component 的样式定义中使用了 /deep/ .sub-component,在 .sub-title 的样式定义中使用了 。这样就可以在作用域样式中定义深度选择器了。

CSS Modules

CSS Modules 是一种模块化 CSS 的解决方案,它可以将 CSS 模块化并命名,确保每个组件的样式都是独立的。Vue.js 提供了对 CSS Modules 的支持,我们可以在每个组件中使用独立的 CSS Module。

首先,我们需要安装 css-loaderstyle-loader,并在 Webpack 配置文件中添加关于 CSS Modules 的配置:

// webpack.conf.js
module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /.css$/,
        loader: 'style-loader!css-loader?modules'
      },
      {
        test: /.vue$/,
        loader: 'vue-loader',
        options: {
          cssModules: {
            localIdentName: '[name]-[hash]',
            camelCase: true
          }
        }
      }
    ]
  }
  // ...
}
Nach dem Login kopieren

上面的代码中,我们在 css-loader 的配置中加上了 modules,表示启用 CSS Modules。在 vue-loader 的配置中加上了 cssModules 属性,表示在 Vue.js 的单文件组件中启用 CSS Modules。

在单文件组件中,我们可以通过 scoped 属性指定 CSS Module 名称。

<template>
  <div class="component">
    <h2 class="title">标题</h2>
  </div>
</template>

<style module>
.component {
  background-color: #f5f5f5;
  padding: 20px;
  border-radius: 5px;
}

.title {
  color: #333;
  font-size: 18px;
  margin-bottom: 10px;
}
</style>
Nach dem Login kopieren

上面的代码中,我们在 style 标签上加上了 module 属性,表示这是一个 CSS Module。在 CSS 中,我们可以采用传统的方式定义样式,不需要使用作用域样式或者深度选择器。

在组件中引入 CSS Module 时,需要使用 $style 对象,如下所示:

<template>
  <div class="component">
    <h2 class="{{$style.title}}">标题</h2>
  </div>
</template>

<style module>
.component {
  background-color: #f5f5f5;
  padding: 20px;
  border-radius: 5px;
}

.title {
  color: #333;
  font-size: 18px;
  margin-bottom: 10px;
}
</style>
Nach dem Login kopieren

上面的代码中,我们使用 $style.title 引用了本组件中定义的 title

In untergeordneten Komponenten erhalten wir normalerweise Daten von der übergeordneten Komponente. Die Datenübertragung zwischen übergeordneten und untergeordneten Komponenten in Vue.js wird hauptsächlich durch zwei Methoden implementiert: props und $emit. props bedeutet, dass die übergeordnete Komponente Daten an die untergeordnete Komponente übergibt und die untergeordnete Komponente die von der übergeordneten Komponente übergebenen Daten durch den Empfang von props erhält. Hier ist ein einfaches props-Beispiel:

rrreee

Der obige Code ist eine Unterkomponente, die eine Eigenschaft namens name über props definiert, wenn die übergeordnete Komponente Übergibt Daten an die untergeordnete Komponente, sie übergibt sie über das Attribut name. In der Vorlage der untergeordneten Komponente können Sie die von der übergeordneten Komponente über {{ name }} übergebenen Daten abrufen. 🎜🎜Wenn Sie Daten an untergeordnete Komponenten in der übergeordneten Komponente übergeben, können Sie die Daten über die Anweisung v-bind übergeben. Wie unten gezeigt: 🎜rrreee🎜In der übergeordneten Komponente definieren wir eine Variable mit dem Namen fatherName, um den Namen der übergeordneten Komponente zu speichern. In der untergeordneten Komponente erhalten wir fatherName über props. 🎜🎜Komponentenstilverwaltung🎜🎜Komponentenstilverwaltung bezieht sich auf die Verwaltung der Komponentenstile in Vue.js, um sicherzustellen, dass sich die Stile der einzelnen Komponenten nicht gegenseitig beeinflussen und einfach zu warten sind. Vue.js bietet zwei Möglichkeiten zum Verwalten von Komponentenstilen: Bereichsstile und CSS-Module. 🎜

Scope-Stil

🎜Scope-Stil bezieht sich auf die Verwendung des scoped-Attributs zum Definieren eines Stils in einer Komponente, sodass der Komponentenstil nur für die aktuelle Komponente gültig ist. Zum Beispiel: 🎜rrreee🎜In dieser Komponente haben wir das Attribut scoped zum Style-Tag hinzugefügt, also style Scoped. Der auf diese Weise definierte Stil gilt nur für die aktuelle Komponente und hat keinen Einfluss auf andere Komponenten oder globale Stile. 🎜🎜Die Verwendung von Stilen mit Gültigkeitsbereich hat einen Nachteil: Tiefenselektoren werden nicht unterstützt. Wenn Sie in einer Komponente einen Tiefenselektor verwenden möchten, müssen Sie /deep/ oder vor dem Selektor hinzufügen, wie unten gezeigt: 🎜rrreee 🎜 Im obigen Code verwenden wir /deep/ .sub-component in der Stildefinition von .component und im .sub-title wird in der Stildefinition verwendet. Dadurch können Sie Tiefenselektoren in Oszilloskopstilen definieren. 🎜

CSS Modules

🎜CSS Modules ist eine modulare CSS-Lösung, die CSS modularisieren und benennen kann, um sicherzustellen, dass der Stil jeder Komponente unabhängig ist. Vue.js bietet Unterstützung für CSS-Module und wir können in jeder Komponente unabhängige CSS-Module verwenden. 🎜🎜Zuerst müssen wir css-loader und style-loader installieren und Konfigurationen zu CSS-Modulen in der Webpack-Konfigurationsdatei hinzufügen: 🎜rrreee🎜Im obigen Code Wir haben modules zur Konfiguration von css-loader hinzugefügt, um CSS-Module zu aktivieren. Das Attribut cssModules wird zur Konfiguration von vue-loader hinzugefügt, was bedeutet, dass CSS-Module in der Einzeldateikomponente von Vue.js aktiviert sind. 🎜🎜In Einzeldateikomponenten können wir den Namen des CSS-Moduls über das Attribut scoped angeben. 🎜rrreee🎜Im obigen Code haben wir das Attribut module zum Tag style hinzugefügt, um anzuzeigen, dass es sich um ein CSS-Modul handelt. In CSS können wir Stile auf herkömmliche Weise definieren, ohne bereichsbezogene Stile oder tiefe Selektoren zu verwenden. 🎜🎜Wenn Sie ein CSS-Modul in eine Komponente einführen, müssen Sie das Objekt $style verwenden, wie unten gezeigt: 🎜rrreee🎜Im obigen Code verwenden wir $style.title um auf den in dieser Komponente definierten title-Stil zu verweisen. 🎜🎜Zusammenfassung: Vue.js bietet zwei Möglichkeiten zum Verwalten von Komponentenstilen: Bereichsstile und CSS-Module. Bereichsstile eignen sich für einfache Stile, während CSS-Module für komponentenbasierte Anwendungen geeignet sind, die CSS modularisieren und sicherstellen, dass der Stil jeder Komponente unabhängig ist. 🎜

Das obige ist der detaillierte Inhalt vonWie implementiert Vue Komponentenverschachtelung und Komponentenstilverwaltung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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)

So verwenden Sie Echarts in Vue So verwenden Sie Echarts in Vue May 09, 2024 pm 04:24 PM

Durch die Verwendung von ECharts in Vue können Sie Ihrer Anwendung ganz einfach Datenvisualisierungsfunktionen hinzufügen. Zu den spezifischen Schritten gehören: Installieren von ECharts- und Vue ECharts-Paketen, Einführung von ECharts, Erstellen von Diagrammkomponenten, Konfigurieren von Optionen, Verwenden von Diagrammkomponenten, Anpassen von Diagrammen an Vue-Daten, Hinzufügen interaktiver Funktionen und Verwenden erweiterter Verwendungsmöglichkeiten.

Die Rolle des Exportstandards in Vue Die Rolle des Exportstandards in Vue May 09, 2024 pm 06:48 PM

Frage: Welche Rolle spielt der Exportstandard in Vue? Detaillierte Beschreibung: Exportstandard definiert den Standardexport der Komponente. Beim Importieren werden Komponenten automatisch importiert. Vereinfachen Sie den Importvorgang, verbessern Sie die Übersichtlichkeit und vermeiden Sie Konflikte. Wird häufig zum Exportieren einzelner Komponenten verwendet, wobei sowohl benannte als auch Standardexporte verwendet werden und globale Komponenten registriert werden.

So verwenden Sie die Kartenfunktion in Vue So verwenden Sie die Kartenfunktion in Vue May 09, 2024 pm 06:54 PM

Die Kartenfunktion von Vue.js ist eine integrierte Funktion höherer Ordnung, die ein neues Array erstellt, wobei jedes Element das transformierte Ergebnis jedes Elements im ursprünglichen Array ist. Die Syntax lautet map(callbackFn), wobei callbackFn jedes Element im Array als erstes Argument empfängt, optional den Index als zweites Argument, und einen Wert zurückgibt. Die Kartenfunktion ändert das ursprüngliche Array nicht.

Der Unterschied zwischen Event und $event in Vue Der Unterschied zwischen Event und $event in Vue May 08, 2024 pm 04:42 PM

In Vue.js ist event ein natives JavaScript-Ereignis, das vom Browser ausgelöst wird, während $event ein Vue-spezifisches abstraktes Ereignisobjekt ist, das in Vue-Komponenten verwendet wird. Im Allgemeinen ist die Verwendung von $event bequemer, da es so formatiert und erweitert ist, dass es die Datenbindung unterstützt. Verwenden Sie „event“, wenn Sie auf bestimmte Funktionen des nativen Ereignisobjekts zugreifen müssen.

Die Rolle von Onmount in Vue Die Rolle von Onmount in Vue May 09, 2024 pm 02:51 PM

onMounted ist ein Lebenszyklus-Hook für die Komponentenmontage in Vue. Seine Funktion besteht darin, Initialisierungsvorgänge durchzuführen, nachdem die Komponente im DOM bereitgestellt wurde, z. B. das Abrufen von Referenzen auf DOM-Elemente, das Festlegen von Daten, das Senden von HTTP-Anforderungen, das Registrieren von Ereignis-Listenern usw. Es wird nur einmal aufgerufen, wenn die Komponente gemountet wird. Wenn Sie Vorgänge ausführen müssen, nachdem die Komponente aktualisiert wurde oder bevor sie zerstört wurde, können Sie andere Lebenszyklus-Hooks verwenden.

Der Unterschied zwischen Export und Exportstandard in Vue Der Unterschied zwischen Export und Exportstandard in Vue May 08, 2024 pm 05:27 PM

Es gibt zwei Möglichkeiten, Module in Vue.js zu exportieren: Export und Export Default. export wird zum Exportieren benannter Entitäten verwendet und erfordert die Verwendung von geschweiften Klammern; export default wird zum Exportieren von Standardentitäten verwendet und erfordert keine geschweiften Klammern. Beim Importieren müssen per Export exportierte Entitäten ihre Namen verwenden, während per Exportstandard exportierte Entitäten implizit verwendet werden können. Es wird empfohlen, die Export-Standardeinstellung für Module zu verwenden, die mehrmals importiert werden müssen, und die Export-Standardeinstellung für Module, die nur einmal exportiert werden müssen.

Was sind Hooks in Vue Was sind Hooks in Vue May 09, 2024 pm 06:33 PM

Vue-Hooks sind Rückruffunktionen, die Aktionen bei bestimmten Ereignissen oder Lebenszyklusphasen ausführen. Dazu gehören Lebenszyklus-Hooks (wie beforeCreate, mount, beforeDestroy), Event-Handling-Hooks (wie click, input, keydown) und benutzerdefinierte Hooks. Hooks verbessern die Komponentenkontrolle, reagieren auf Komponentenlebenszyklen, verarbeiten Benutzerinteraktionen und verbessern die Wiederverwendbarkeit von Komponenten. Um Hooks zu verwenden, definieren Sie einfach die Hook-Funktion, führen Sie die Logik aus und geben Sie einen optionalen Wert zurück.

Für welche Szenarien können Ereignismodifikatoren in Vue verwendet werden? Für welche Szenarien können Ereignismodifikatoren in Vue verwendet werden? May 09, 2024 pm 02:33 PM

Vue.js-Ereignismodifikatoren werden verwendet, um bestimmte Verhaltensweisen hinzuzufügen, darunter: Verhindern von Standardverhalten (.prevent), Stoppen von Ereignisblasen (.stop), Einmaliges Ereignis (.once), Erfassen von Ereignissen (.capture), Passives Abhören von Ereignissen (.passive), Adaptiv Modifikator (.self)Schlüsselmodifikator (.key)

See all articles