<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
        主站蜘蛛池模板: 国产精品公开免费视频| 国产精品白浆在线观看免费| 亚洲欧美aⅴ在线资源| 黄色免费网站在线看| 国色精品va在线观看免费视频| 久久精品国产这里是免费| 亚洲国产精品高清久久久| 亚洲免费在线观看视频| 四虎一区二区成人免费影院网址 | 91短视频免费在线观看| 日韩精品视频免费观看| 亚洲熟妇av一区二区三区| 亚洲一级毛片免费看| 国产真人无码作爱视频免费| 日本免费中文字幕在线看| 日韩色日韩视频亚洲网站 | 亚洲AV无码男人的天堂| 国产精品网站在线观看免费传媒| 亚洲人成伊人成综合网久久久 | 欧洲人免费视频网站在线| 18gay台湾男同亚洲男同| 麻豆69堂免费视频| 国内精品久久久久久久亚洲 | 国内成人精品亚洲日本语音| 久久笫一福利免费导航| 综合亚洲伊人午夜网| 久99久精品免费视频热77| 久久影视国产亚洲| 免费一级毛片在线播放放视频| 成人无码区免费A片视频WWW| 亚洲高清日韩精品第一区| 18禁超污无遮挡无码免费网站国产| 亚洲第一福利网站| 中文字幕免费播放| 亚洲中文字幕不卡无码| 最近中文字幕大全中文字幕免费 | 亚洲欧美日韩中文高清www777| 免费观看国产精品| 亚洲av日韩综合一区二区三区| 亚洲精品一级无码中文字幕| 成a人片亚洲日本久久|