Vue頁面基類封裝

Vue base 類封裝

-----------------------------------------------------------------------------------------

vue在實際開發中,代碼封裝demo

這裏以多個頁面的,查詢接口,getlist 爲例

分析多個頁面 getlist 行爲得出

相同點

1 .1 進行網絡請求

1.2 將接口結果賦值給變量

1.3 變量 data

不同點

2.1  接口Url

得出 : 子類定義  apiPath  ,方法寫在父類中

1:父類代碼

//基類 base
<template>
  <section>
       父類的模板層代碼
  </section>
</template>

<script>
export default {
  name: 'base',
  components: {
    
  },
  data() {
    return {
      data: {
        data:[]
      },
      name :'base',
    };
  },
  created() {
    /**Base-init */
  },
  methods: {
    async getInfo() {

      const param = {
        data: { id: this.form.id },
        url: `/Api/Admin/${this.apiPath}/getInfo`,
      };
      const res = await this.request(param);

      //進行賦值,子類調用 getInfo 則下面this指向子頁面
      const { data} = this;
      data = res.result;
      
    }
  },
};
</script>

2 子類代碼

//子類
<template>
  <section>
       {{data}}
  </section>
</template>

<script type="text/ecmascript-6">
import Base from 'components/Base';
export default {
  extends: Base,
  components:{

  },
  data() {
    return {
      data: {
        data:[], //調用父類的 getinfo 會將這個變量賦值上數據
        apiPath:'myApiPath'
      },
    };
  },
  mounted() {
    console.log(this.name);  //base 子類沒有就找父類定義的,所以這裏打印會是base
    this.getinfo() //調用父類的 getinfo // 注意設置了屬性 apiPath
  },
  methods: {
    //
  }
};
</script>

vue 繼承總結

1子類不寫 <template> 則渲染base基類模板層,可以利用這點去做封裝

2繼承通用原則,父類 的 屬性 ,方法 , 子類一樣使用this調用。

3父類方法裏的 this 子類調用則指向子類, 可以將子類相同變量封裝進基類

4this指向是理解繼承的關鍵

-----------------------------------------------------------------------------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章