ホームページ >ウェブフロントエンド >jsチュートリアル >vueカスタムコンポーネント
今回は、vue カスタム コンポーネントについて説明します。vue カスタム コンポーネントの注意点について、実際のケースを見てみましょう。
vueコンポーネントを書く
以下に書くのは、webpackに基づいて構築されたプロジェクトである、.vueで終わる単一ファイルコンポーネントの書き方です。 webpack を使用して vue プロジェクトを構築する方法がまだわからない場合は、vue-cli に移行できます。
完全な vue コンポーネントには次の 3 つの部分が含まれます:
template: テンプレート
js: ロジック
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 サイトにあります。
推奨読書:
以上がvueカスタムコンポーネントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。