<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        關于vue中extend,mixins,extends,components,install的操作

        來源:懂視網 責編:小采 時間:2020-11-27 19:33:50
        文檔

        關于vue中extend,mixins,extends,components,install的操作

        關于vue中extend,mixins,extends,components,install的操作:這篇文章主要介紹了關于vue中extend,mixins,extends,components,install的操作,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下前言你知道extend,mixins,extends,components,install用法嗎 你知道他們的區別嗎你知道他們
        推薦度:
        導讀關于vue中extend,mixins,extends,components,install的操作:這篇文章主要介紹了關于vue中extend,mixins,extends,components,install的操作,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下前言你知道extend,mixins,extends,components,install用法嗎 你知道他們的區別嗎你知道他們

        1.Vue.extend

        1.使用vue構造器,創建一個子類,參數是包含組件選項的對象;
        2.是全局的

        // 創建構造器
        var Profile = Vue.extend({
         template: '<p>{{extendData}}</br>實例傳入的數據為:{{propsExtend}}</p>',//template對應的標簽最外層必須只有一個標簽
         data: function () {
         return {
         extendData: '這是extend擴展的數據',
         }
         },
         props:['propsExtend']
        })
        // 創建 Profile 實例,并掛載到一個元素上。可以通過propsData傳參.
        new Profile({propsData:{propsExtend:'我是實例傳入的數據'}}).$mount('#app-extend')

        結論:
        Vue.extend實際是創建一個構造器,對應的初始化構造器,并將其掛載到標簽上

        github源碼,請戳這里 ,歡迎star

        2.Vue.component

        1.將通過 Vue.extend 生成的擴展實例構造器注冊(命名)為一個全局組件,參數可以是Vue.extend()擴展的實例,也可以是一個對象(會自動調用extend方法)
        2.兩個參數,一個組件名,一個extend構造器或者對象

        //1.創建組件構造器
         var obj = {
         props: [],
         template: '<p><p>{{extendData}}</p></p>',//最外層只能有一個大盒子,這個和<tempalte>對應規則一致
         data: function () {
         return {
         extendData: '這是Vue.component傳入Vue.extend注冊的組件',
         }
         },
         };
        
         var Profile = Vue.extend(obj);
        
         //2.注冊組件方法一:傳入Vue.extend擴展過得構造器
         Vue.component('component-one', Profile)
        
         //2.注冊組件方法二:直接傳入
         Vue.component('component-two', obj)
        
         //3.掛載
         new Vue({
         el: '#app'
         });
        
         //獲取注冊的組件 (始終返回構造器)
         var oneComponent=Vue.component('component-one');
         console.log(oneComponent===Profile)//true,返回的Profile構造器

        3.mixins

        值可以是一個混合對象數組,混合實例可以包含選項,將在extend將相同的選項合并
        mixins代碼:

         var mixin={
         data:{mixinData:'我是mixin的data'},
         created:function(){
         console.log('這是mixin的created');
         },
         methods:{
         getSum:function(){
         console.log('這是mixin的getSum里面的方法');
         }
         }
         }
        
         var mixinTwo={
         data:{mixinData:'我是mixinTwo的data'},
         created:function(){
         console.log('這是mixinTwo的created');
         },
         methods:{
         getSum:function(){
         console.log('這是mixinTwo的getSum里面的方法');
         }
         }
         } 
        
         var vm=new Vue({
         el:'#app',
         data:{mixinData:'我是vue實例的data'},
         created:function(){
         console.log('這是vue實例的created');
         },
         methods:{
         getSum:function(){
         console.log('這是vue實例里面getSum的方法');
         }
         },
         mixins:[mixin,mixinTwo]
         })
         
         //打印
        結果為: 這是mixin的created 這是mixinTwo的created 這是vue實例的created 這是vue實例里面getSum的方法

        結論:
        1.mixins執行的順序為mixins>mixinTwo>created(vue實例的生命周期鉤子);
        2.選項中數據屬性如data,methods,后面執行的回覆蓋前面的,而生命周期鉤子都會執行

        3.extends

        extends用法和mixins很相似,只不過接收的參數是簡單的選項對象或構造函數,所以extends只能單次擴展一個組件

        var extend={
         data:{extendData:'我是extend的data'},
         created:function(){
         console.log('這是extend的created');
         },
         methods:{
         getSum:function(){
         console.log('這是extend的getSum里面的方法');
         }
         }
         }
        
         var mixin={
         data:{mixinData:'我是mixin的data'},
         created:function(){
         console.log('這是mixin的created');
         },
         methods:{
         getSum:function(){
         console.log('這是mixin的getSum里面的方法');
         }
         }
         }
         
         
         var vm=new Vue({
         el:'#app',
         data:{mixinData:'我是vue實例的data'},
         created:function(){
         console.log('這是vue實例的created');
         },
         methods:{
         getSum:function(){
         console.log('這是vue實例里面getSum的方法');
         }
         },
         mixins:[mixin],
         extends:extend
         })
         
         //打印結果
         這是extend的created
         這是mixin的created
         這是vue實例的created
         這是vue實例的getSum里面的方法

        結論:
        1.extends執行順序為:extends>mixins>mixinTwo>created
        2.定義的屬性覆蓋規則和mixins一致

        4.components

        注冊一個局部組件

        //1.創建組件構造器
         var obj = {
         props: [],
         template: '<p><p>{{extendData}}</p></p>',//最外層只能有一個大盒子,這個和<tempalte>對應規則一致
         data: function () {
         return {
         extendData: '這是component局部注冊的組件',
         }
         },
         };
        
         var Profile = Vue.extend(obj);
         
         //3.掛載
         new Vue({
         el: '#app',
         components:{
         'component-one':Profile,
         'component-two':obj
         }
         });

        5.install

        1.是開發vue的插件,這個方法的第一個參數是 Vue 構造器,第二個參數是一個可選的選項對象(可選)
        2.vue.use方法可以調用install方法,會自動阻止多次注冊相同插件

         var MyPlugin = {};
         MyPlugin.install = function (Vue, options) {
         // 2. 添加全局資源,第二個參數傳一個值默認是update對應的值
         Vue.directive('click', {
         bind(el, binding, vnode, oldVnode) {
         //做綁定的準備工作,添加時間監聽
         console.log('指令my-directive的bind執行啦');
         },
         inserted: function(el){
         //獲取綁定的元素
         console.log('指令my-directive的inserted執行啦');
         },
         update: function(){
         //根據獲得的新值執行對應的更新
         //對于初始值也會調用一次
         console.log('指令my-directive的update執行啦');
         },
         componentUpdated: function(){
         console.log('指令my-directive的componentUpdated執行啦');
         },
         unbind: function(){
         //做清理操作
         //比如移除bind時綁定的事件監聽器
         console.log('指令my-directive的unbind執行啦');
         }
         })
        
         // 3. 注入組件
         Vue.mixin({
         created: function () {
         console.log('注入組件的created被調用啦');
         console.log('options的值為',options)
         }
         })
        
         // 4. 添加實例方法
         Vue.prototype.$myMethod = function (methodOptions) {
         console.log('實例方法myMethod被調用啦');
         }
         }
        
         //調用MyPlugin
         Vue.use(MyPlugin,{someOption: true })
        
         //3.掛載
         new Vue({
         el: '#app'
         });

        6.各個方法之間的關系

        Vue.extend和Vue.component是為了創建構造器和組件;
        mixins和extends是為了拓展組件;
        install是開發插件; 總的順序關系: Vue.extend>Vue.component>extends>mixins

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        關于vue中extend,mixins,extends,components,install的操作

        關于vue中extend,mixins,extends,components,install的操作:這篇文章主要介紹了關于vue中extend,mixins,extends,components,install的操作,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下前言你知道extend,mixins,extends,components,install用法嗎 你知道他們的區別嗎你知道他們
        推薦度:
        標簽: 操作 VUE mi
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产在线观看www鲁啊鲁免费| 精品无码国产污污污免费网站| 无码国产精品一区二区免费I6| 久久精品国产96精品亚洲| 久久久精品国产亚洲成人满18免费网站| 亚洲国产精品一区| 在线观看免费视频一区| 拨牐拨牐x8免费| 国产精品亚洲精品日韩已满| 男女一进一出抽搐免费视频 | 亚洲性色成人av天堂| 国产成人免费视频| 亚洲无线电影官网| 最近免费中文字幕mv在线电影| 亚洲精品视频在线观看视频| 美女网站免费福利视频| 亚洲人成网站看在线播放| 免费高清资源黄网站在线观看| 国产亚洲精品国产福利在线观看| 全部免费国产潢色一级| av网站免费线看| 国产国拍亚洲精品mv在线观看 | 亚洲色在线无码国产精品不卡| 四虎成人免费观看在线网址 | 暖暖免费日本在线中文| 亚洲首页在线观看| 成全视频免费高清 | 亚洲精品无码av人在线观看| 中文字幕免费在线| 亚洲欧洲日本在线观看| 又大又硬又爽免费视频| 久久免费高清视频| 国产亚洲大尺度无码无码专线| 久久成人免费播放网站| 亚洲综合色区中文字幕| 免费一看一级毛片全播放| 中文字幕无码一区二区免费| 亚洲综合丁香婷婷六月香| 亚洲另类少妇17p| 色播精品免费小视频| 美女黄频免费网站|