組件化與模塊化的區別
什么是組件:組件的出現,就是為了拆分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>