vueカスタムコンポーネント

php中世界最好的语言
リリース: 2018-06-09 10:44:10
オリジナル
1714 人が閲覧しました

今回は、vue カスタム コンポーネントについて説明します。vue カスタム コンポーネントの注意点について、実際のケースを見てみましょう。

vueコンポーネントを書く

以下に書くのは、webpackに基づいて構築されたプロジェクトである、.vueで終わる単一ファイルコンポーネントの書き方です。 webpack を使用して vue プロジェクトを構築する方法がまだわからない場合は、vue-cli に移行できます。

完全な vue コンポーネントには次の 3 つの部分が含まれます:

  1. template: テンプレート

  2. js: ロジック

  3. css: スタイル

各コンポーネントには独自のテンプレート、js、スタイルがあります。ページを家にたとえると、そのコンポーネントは家のリビングルーム、ベッドルーム、キッチン、トイレです。キッチンを個別に取り出す場合、コンポーネントは包丁、レンジフード...などになります。つまり、ページはコンポーネントで構成されており、コンポーネントはコンポーネントで構成することもできます。これにより、非常に柔軟になり、結合が非常に低くなります。

まず、コンポーネントが .vue ファイルにどのように記述されるかを見てみましょう:

Vue.component('simple-counter', {
 template: '<p id="inputBox"><input type="text"></p>',
 data () {   // 数据
 return {
  counter: 0
 }
 },
 methods: {
 // 写点方法
 },
 created () {
 // 生命钩子
 },
 computed: {
 // 计算属性
 }
})
ログイン後にコピー

テンプレートは何に使用されますか?

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

jsパート

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

cssパート

<style lang="scss" scoped>
...样式
</style>
ログイン後にコピー

はじめに

このコンポーネントを他のコンポーネントで参照するにはどうすればよいですか?

コンポーネント 1 (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>
ログイン後にコピー

コンポーネント 2 (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>
ログイン後にコピー

この記事の事例を読んだ後は、この方法を習得したと思います。さらにエキサイティングな内容については、注目してください。その他の関連記事は PHP 中国語 Web サイトにあります。

推奨読書:

Angular プロジェクトで scss を使用する方法

Vue のパッケージ化最適化方法とは何ですか

以上がvueカスタムコンポーネントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
vue
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート