Heim > Web-Frontend > js-Tutorial > Benutzerdefinierte vue-Komponente

Benutzerdefinierte vue-Komponente

php中世界最好的语言
Freigeben: 2018-06-09 10:44:10
Original
1741 Leute haben es durchsucht

Dieses Mal bringe ich Ihnen benutzerdefinierte Vue-Komponenten. Was sind die Vorsichtsmaßnahmen für benutzerdefinierte Vue-Komponenten? Hier sind praktische Fälle.

Schreiben Sie eine Vue-Komponente

Was ich unten schreibe, ist, wie man eine einzelne Dateikomponente mit der Endung .vue schreibt, bei der es sich um ein erstelltes Projekt handelt Basierend auf Webpack. Wenn Sie immer noch nicht wissen, wie Sie Webpack zum Erstellen eines Vue-Projekts verwenden, können Sie zu vue-cli wechseln.

Eine vollständige Vue-Komponente umfasst die folgenden drei Teile:

  1. Vorlage: Vorlage

  2. js: Logik

  3. CSS: Stil

Jede Komponente hat ihre eigene Vorlage, JS und Stil. Wenn eine Seite mit einem Haus verglichen wird, sind die Bestandteile das Wohnzimmer, das Schlafzimmer, die Küche und die Toilette im Haus. Wenn die Küche separat herausgenommen wird, können die Komponenten Messer, Dunstabzugshauben usw. sein. Das heißt, Seiten bestehen aus Komponenten, und Komponenten können auch aus Komponenten bestehen. Dadurch ist es sehr flexibel und weist eine sehr geringe Kopplung auf.

Sehen wir uns zunächst an, wie eine Komponente in eine .vue-Datei geschrieben wird:

Vue.component('simple-counter', {
 template: '<p id="inputBox"><input type="text"></p>',
 data () {   // 数据
 return {
  counter: 0
 }
 },
 methods: {
 // 写点方法
 },
 created () {
 // 生命钩子
 },
 computed: {
 // 计算属性
 }
})
Nach dem Login kopieren

Wofür wird eine Vorlage verwendet?

<template>
 <p id="inputBox">
 <input type="text">
 </p>
</template>
<!--
template就是这个组件的html,也就是下面部分(vue-loader会将template标签下的内容解析出来):
-->
<p id="inputBox">
 <input type="text">
</p>
<!--
 对应原生写法的话,就是template内的dom字符串
-->
Nach dem Login kopieren

js-Teil

export default {
 data () {
 return {
  counter: 0
 }
 },
 methods: {
 // 方法
 },
 created () {
 // 生命钩子
 },
 computed: {
 // 计算属性
 }
}
// 在这里很明显js部分就是对应的原生写法内的非template部分了。
// export default这个是es6的模块写法,不懂的可以先去了解es6的模块化
Nach dem Login kopieren

css-Teil

<style lang="scss" scoped>
...样式
</style>
Nach dem Login kopieren

Einführung

Wie verweise ich auf diese Komponente in anderen Komponenten?

Komponente eins (button.vue)

<template>
 <p class="button">
 <button @click="onClick">{{text}}</button>
 </p>
</template>
<script>
export default {
 props: ['text'],   // 获取父组件的传值
 data () {
 return {
 }
 },
 methods: {
 onClick () {
  console.log('点击了子组件')
 }
 }
}
</script>
<style lang="scss" scoped>
.button {
 button {
 width: 100px;
 }
}
</style>
Nach dem Login kopieren

Komponente zwei (box.vue)

<template>
 <p class="box">
 <v-button :text="text"></v-button>    <!--使用组件并传值(text)-->
 </p>
</template>
<script>
import Button from './button.vue'  // 引入子组件
export default {
 components: {
 'v-button': Button
 },
 data () {
 return {
  text: '按键的name'
 }
 },
 methods: {
 }
}
</script>
Nach dem Login kopieren

Ich glaube, du hast gelesen In diesem Artikel beherrschen Sie die Fallmethode. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website.

Empfohlene Lektüre:

So verwenden Sie scss in Angular-Projekten

Was sind die Verpackungsoptimierungsmethoden für Vue

Das obige ist der detaillierte Inhalt vonBenutzerdefinierte vue-Komponente. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
vue
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage