zoukankan      html  css  js  c++  java
  • Vue:如何在vue-cli中创建并引入自定义组件

    一、创建并引入一个组件

    1、创建组件

    vue-cli中的所有组件都是存放在components文件夹下面的,所以在components文件夹下面创建一个名为First.vue的自定义组件:

    <template>
        <div>
            <h1>{{msg}}</h1>
        </div>
    </template>
    <script>
    
    // 1、export 表示导出,在自定义组件里面使用export default导出  
    export default {
        // name 表示设置别名,可以不设置,建议和组件的名称一致
        name:"First",
        data(){
            return{
                msg:"First Vue"
            }
        }
    }
    </script>

    2、在App.vue组件里面引用First.vue组件

    1、在<script>标签里面使用import导入自定义的标签:

    // 1、导入自定义组件 First即First.vue组件里面设置的name值
    import First from "./components/First"

    2、在export里面添加自定义组件:

     // 2、添加自定义组件
      components:{
        First
      }

     3、在<template>标签里面引入自定义组件:

    <template>
      <div id="app">
        <img src="./assets/logo.png">
        <!-- <router-view/> -->
        <!--3、引用自定义组件-->
        <First></First>
      </div>
    </template>

     完整代码如下:

    <template>
      <div id="app">
        <img src="./assets/logo.png">
        <!-- <router-view/> -->
        <!--3、引用自定义组件-->
        <First></First>
      </div>
    </template>
    
    <script>
    // 1、导入自定义组件 First即First.vue组件里面设置的name值
    import First from "./components/First"
    export default {
      name: 'App',
      // 2、添加自定义组件
      components:{
        First
      }
    }
    </script>
    
    <style>
    #app {
      font-family: 'Avenir', Helvetica, Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-align: center;
      color: #2c3e50;
      margin-top: 60px;
    }
    </style>

     效果:

    二、引入嵌套组件

    在上面的示例中,只是在App.vue中引入了单一的组件,如何引入嵌套组件呢?即First.vue组件里面又引用了自定义组件,这时该如何在App.vue组件里面引入呢?

    1、先定义Second.vue自定义组件:

    <template>
        <div>
            <h1>{{secondMsg}}</h1>
        </div>
    </template>
    
    <script>
    export default {
        // name 表示设置别名,可以不设置,建议和组件的名称一致
        name :"Second",
        data(){
           return{
               secondMsg:"Second vue"
           }
        }
    }
    </script>

    2、在First.vue组件中引用Second.vue组件

    在First.vue中引用Second.vue组件和在App.vue中引入First.vue组件是一样的,完整代码如下:

    <template>
        <div>
            <h1>{{msg}}</h1>
            <!--3、引用second.vue组件-->
            <Second></Second>
        </div>
    </template>
    <script>
    // 1、使用import导入Second.vue
    import Second from './Second';
    // export 表示导出
    export default {
        // name 表示设置别名,可以不设置,建议和组件的名称一致
        name:"First",
        data(){
            return{
                msg:"First Vue"
            }
        },
        // 2、添加自定义组件组件
        components:{
            Second
        }
    }
    </script>

    3、在App.vue中引入嵌套组件

    First.vue中引入了Second.vue组件以后,可以把First.vue组件看成是一个组件了,所以在App.vue中引入的时候代码是一样的:

    <template>
      <div id="app">
        <img src="./assets/logo.png">
        <!-- <router-view/> -->
        <!--3、引用自定义组件-->
        <First></First>
      </div>
    </template>
    
    <script>
    // 1、导入自定义组件 First即First.vue组件里面设置的name值
    import First from "./components/First"
    export default {
      name: 'App',
      // 2、添加自定义组件
      components:{
        First
      }
    }
    </script>
    
    <style>
    #app {
      font-family: 'Avenir', Helvetica, Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-align: center;
      color: #2c3e50;
      margin-top: 60px;
    }
    </style>

    4、效果

  • 相关阅读:
    PyQt5 控件学习(一个一个学习之QCommandLinkButton)
    多任务--线程
    PyQt5 控件学习(一个一个学习之QPushButton)
    PyQt5 控件学习(一个一个学习之QAbstractButton)
    再测我心中的事
    花了两天时间,整理了代码,封装了逻辑
    我现在发现,我写代码有严重的问题
    2014年8月2日0时13分22秒
    2014年8月2日15时13分4秒
    交警与货车司机
  • 原文地址:https://www.cnblogs.com/dotnet261010/p/10248184.html
Copyright © 2011-2022 走看看