国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

vue mixins組件復用的方式

2024-05-06 15:45:32
字體:
來源:轉載
供稿:網友

我們在做功能的時候無意中研究了一下mixins,發現mixins的妙處非常之多,對于不了解的小伙伴們來說就不知道vue mixins組件復用的方式,那么我們現在就一起去了解了解吧。用的時候有這樣一個場景,頁面的風格不同,但是執行的方法,和需要的數據非常的相似。我們是否要寫兩種組件呢?還是保留一個并且然后另個一并兼容另一個呢?

不管以上那種方式都不是很合理,因為組件寫成2個,不僅麻煩而且維護麻煩;第二種雖然做了兼容但是頁面邏輯造成混亂,必然不清晰;有沒有好的方法,有那就是用vue的混合插件mixins。混合在Vue是為了提出相似的數據和功能,使代碼易懂,簡單、清晰。

1.場景

假設我們有幾個不同的組件,它們的工作是切換狀態布爾、模態和工具提示。這些提示和情態動詞不有很多共同點,除了功能:他們看起來不一樣,他們不習慣相同,但邏輯是相同的。

//彈框const Modal = { template: '#modal', data() {  return {   isShowing: false  } }, methods: {  toggleShow() {   this.isShowing = !this.isShowing;  } }, components: {  appChild: Child }}//提示框const Tooltip = { template: '#tooltip', data() {  return {   isShowing: false  } }, methods: {  toggleShow() {   this.isShowing = !this.isShowing;  } }, components: {  appChild: Child }}

上面是一個彈框和提示框,如果考慮做2個組件,或者一個兼容另一個都不是合理方式。請看一下代碼

const toggle = { data() {  return {   isShowing: false  } }, methods: {  toggleShow() {   this.isShowing = !this.isShowing;  } }}const Modal = { template: '#modal', mixins: [toggle], components: {  appChild: Child }};const Tooltip = { template: '#tooltip', mixins: [toggle], components: {  appChild: Child }};

用mixins引入toggle功能相似的js文件,進行混合使用

2.可以合并生命周期

//mixinconst hi = { mounted() {  console.log('this mixin!') }}//vue組件new Vue({ el: '#app', mixins: [hi], mounted() {  console.log('this Vue instance!') }});//Output in console> this mixin!> this Vue instance!

先輸出的是mixins的數據

3、可以全局混合(類似已filter)

Vue.mixin({ mounted() {  console.log('hello from mixin!') }, method:{   test:function(){   }  }})new Vue({ el: '#app', mounted() {  console.log('this Vue instance!') }})

會在每一個組件中答應周期中的log,同時里面的方法,類似于vue的prototype添加實例方法一樣。

var install = function (Vue, options) { // 1. 添加全局方法或屬性 Vue.myGlobalMethod = function () {  // 邏輯... } // 2. 添加全局資源 Vue.directive('my-directive', {  bind (el, binding, vnode, oldVnode) {   // 邏輯...  }  ... }) // 3. 注入組件 Vue.mixin({  created: function () {   // 邏輯...  }  ... }) // 4. 添加實例方法 Vue.prototype.$myMethod = function (options) {  // 邏輯... }}

這篇文章主要介紹了vue mixins組件復用的方式,其中vue還提供了一種混合機制mixins,用來更高效的實現組件內容的復用,有興趣的可以了解一下。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 莱芜市| 元氏县| 彰化县| 隆德县| 金平| 田东县| 潢川县| 泗阳县| 福建省| 屯昌县| 涟源市| 开封县| 西畴县| 泸溪县| 瑞安市| 满洲里市| 涞水县| 疏勒县| 全州县| 嘉荫县| 南宫市| 兴海县| 璧山县| 临海市| 东乌珠穆沁旗| 永靖县| 广汉市| 乌恰县| 尖扎县| 麟游县| 霍林郭勒市| 辉县市| 嘉祥县| 麻城市| 上饶县| 成武县| 安溪县| 电白县| 金阳县| 格尔木市| 黄梅县|