亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue項目使用typescript創(chuàng)建抽象類及其使用方式

 更新時間:2024年03月04日 09:00:44   作者:左直拳  
這篇文章主要介紹了vue項目使用typescript創(chuàng)建抽象類及其使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

如題,可以在vue項目使用typescript創(chuàng)建抽象類,然后使用這個抽象類。

通過TypeScript,可以在前端應(yīng)用抽象類了。

抽象類的好處,可以同時滿足繼承和多態(tài),好處多多。

以vue3為例:

1、創(chuàng)建抽象類

據(jù)說js類中,“#”開頭的變量或方法,就是私有變量或方法(見拙作《vue項目中的類》)。

但是,現(xiàn)在TypeScript有private、protected、public等全套關(guān)鍵詞。

export abstract class ListPage {
  #queryForm //查詢框表單對象,例如:const queryForm = ref(),<el-form ref="queryForm">
  #myPageSetup //分頁對象,例如:const myPageSetup = cloneDeep(pageSetup)

  constructor(queryForm, pageSetup) {
    this.#queryForm = queryForm
    this.#myPageSetup = pageSetup
  }

  //列表數(shù)據(jù)請求。抽象方法,子類必須實現(xiàn)
  abstract doQuery(): void

  //查詢
  onSearch = () => {
    this.#myPageSetup.pageIndex = 1
    this.doQuery()
  }
  //重置
  onReset = () => {
    this.#queryForm.value.resetFields()
  }
  //跳轉(zhuǎn)至指定頁碼
  onPageChange = (pageIndex) => {
    this.#myPageSetup.pageIndex = pageIndex
    this.doQuery()
  }
  //改變分頁大小
  onPageSizeChange = (size) => {
    this.#myPageSetup.pageIndex = 1
    this.#myPageSetup.pageSize = size
    this.doQuery()
  }
  //排序
  onColumnSort = ({ prop, order }) => {
    this.#myPageSetup.order = order
    this.#myPageSetup.sort = prop
    this.doQuery()
  }
}

2、應(yīng)用該抽象類

class MyListPage extends ListPage {
  constructor() {
    super(defaultQueryForm, myPageSetup) // 在派生類的構(gòu)造函數(shù)中必須調(diào)用super()
  }

//實現(xiàn)抽象方法。async代表異步,基類中的沒有聲明是否異步,既可以異步,也可以不異步。
  doQuery = async () => {
	//巴拉巴拉巴拉
  }
}
const myListPage = new MyListPage()
myListPage.onSearch()

3、心得

現(xiàn)在前端跟后端越來越像了。再也不是以前那種相對簡單的三劍客了。

本來吧,js廣受歡迎,一個原因是它非常靈活,沒有什么類型的限制,怎么寫都可以。

現(xiàn)在引入了TypeScript,到處聲明類型,神憎鬼厭。有什么好處呢?

難道聲明了強類型后,沒有類型轉(zhuǎn)換,程序執(zhí)行效率就提高了?

未必吧,瀏覽器好像不直接支持typescript,最終還是要轉(zhuǎn)換成原生js才能執(zhí)行吧。

這么說的話,所謂TypeScript也者,也不過是一種語法糖,讓我們寫代碼時可以寫這寫那,假裝在面向?qū)ο缶幊潭选?/p>

有沒有跟我一樣,覺得這樣反而不方便的?

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue3新增時自動獲取當(dāng)前時間的操作方法

    Vue3新增時自動獲取當(dāng)前時間的操作方法

    這篇文章主要介紹了Vue3新增時自動獲取當(dāng)前時間的操作方法,本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • vue實現(xiàn)水波漣漪效果的點擊反饋指令

    vue實現(xiàn)水波漣漪效果的點擊反饋指令

    鼠標(biāo)移入時的小手、鼠標(biāo)點擊時按鈕下壓彈起的動畫、觸屏應(yīng)用點擊時的屏幕震動,這些效果也被統(tǒng)稱為點擊反饋,雖然看似是應(yīng)用中的細(xì)枝末節(jié),但是只要稍微投入一點點心思,帶來的用戶體驗提升是十分明顯的,這里作者為小伙伴們推薦一種作者最喜歡的點擊反饋效果。
    2021-05-05
  • vue-cli項目根據(jù)線上環(huán)境分別打出測試包和生產(chǎn)包

    vue-cli項目根據(jù)線上環(huán)境分別打出測試包和生產(chǎn)包

    這篇文章主要介紹了vue-cli項目根據(jù)線上環(huán)境打出測試包和生產(chǎn)包的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • vue實現(xiàn)抖音時間轉(zhuǎn)盤

    vue實現(xiàn)抖音時間轉(zhuǎn)盤

    這篇文章主要為大家詳細(xì)介紹了vue實現(xiàn)抖音時間轉(zhuǎn)盤,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Vue自定義指令使用方法詳解

    Vue自定義指令使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了Vue自定義指令的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 從零開始Vue3數(shù)據(jù)交互之promise用法詳解

    從零開始Vue3數(shù)據(jù)交互之promise用法詳解

    這篇文章主要介紹了Axios的基本使用,包括異步編程的基礎(chǔ)知識,如Promise的介紹、特點和基本用法,以及如何使用then、catch和async/await來處理異步操作,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • VUE實現(xiàn)分布式醫(yī)療掛號系統(tǒng)預(yù)約掛號首頁步驟詳情

    VUE實現(xiàn)分布式醫(yī)療掛號系統(tǒng)預(yù)約掛號首頁步驟詳情

    這篇文章主要為大家介紹了VUE實現(xiàn)分布式醫(yī)療掛號系統(tǒng)預(yù)約掛號首頁步驟詳情,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • 關(guān)于Vue v-on指令的使用

    關(guān)于Vue v-on指令的使用

    這篇文章主要介紹了關(guān)于Vue v-on指令的一些使用場景,比如監(jiān)聽事件、傳入event參數(shù)、事件修飾符的一些場景,下面就來看看具體使用的方法吧,需要的朋友可以參考一下
    2021-10-10
  • Vue3計算屬性和異步計算屬性方式

    Vue3計算屬性和異步計算屬性方式

    這篇文章主要介紹了Vue3計算屬性和異步計算屬性方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue監(jiān)聽對象及對象屬性問題

    vue監(jiān)聽對象及對象屬性問題

    這篇文章主要介紹了vue監(jiān)聽對象及對象屬性問題,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-08-08

最新評論