Vue組件component創建及使用


組件化與模塊化的區別

  什么是組件:組件的出現,就是為了拆分Vue實例的代碼量,能夠讓我們以不同的組件,來划分不同的功能模塊

,將來我們需要什么功能,就可以去調用對應的組件即可

 

  組件化與模塊化的不同:

    模塊化:是從代碼邏輯的角度進行分析,方便代碼分層開發,保證每個功能模塊的只能單一  

    組件化:是從UI界面的角度進行划分,前端的組件化,方便UI組件的重用。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./lib/vue-2.4.0.js"></script>
</head>
<body>
    
    <div class="app">
        <!-- 引用組件的名稱 -->
        <login></login>  
        <login2></login2>
        <login3></login3>
        <hr>
        <login6></login6>
    </div>



    <!-- 注意 這里的id是必須的,不要在實例控制中的divcalss app 中去寫template -->
    <template id="login3">
            <div>
                <h2>我是第三種方式創建出來的</h2>
            </div>
    </template>

<!-- Vue實例 -->
    <script>
        // Component 組件的創建
        // 注意  template 中的容器 只能有一個父元素,不能包含兩個 你可以用一個div包裹
        // 第一種創建全局組件
        // extend是注冊組件函數,他返回一個對象
       var comobj= Vue.extend({
            template:"<h1>我是全局組件</h1>"
        })
        // component函數提交組件,第一個參數為組件的名稱,第二個參數是一個注冊組件的對象
        Vue.component("login",comobj)   


        
        // 第二種創建方式
        // component 中直接寫上一個模板對象
        Vue.component('login2',{template:'<h1>我是第二種v創建出來的組件</h1>'});



        // 第三種創建的方式 首先在元素中創建一個template模板
        Vue.component('login3',{template:'#login3'})

    var vm=new Vue({
        el:'.app',
        data:{},
        // 定義私有組件 和全局差不多 組件名稱和對象,也可以使用template模板來創建
        components:{
            login6:{template:'#login3'}
            
            
        }
    })
    
    </script>
</body>
</html>

組件的引用可以使用組件的名字直接引用 也可以使用Vue給我們提供的的元素

Vue 提供了component,來展示對應名稱的組件

component是一個占位符,:is屬性可以用來指定要展示的組件名稱

<compnent :is="comName" ></component>

 
<div class="app">
   <login></login>
   <login2></login2>
   <!-- 使用component 占位符來展示組件 -->
   <!-- 注意 :is 是綁定的屬性,需要在實例的data中綁定的 組件的名稱是字符串 -->
   <!-- 其中 他還提供了 mode屬性來切換動畫的先進先出的問題  -->
   <component :is="login='login'" mode="out-in"></component>
</div>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM