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)文章
vue-cli項目根據(jù)線上環(huán)境分別打出測試包和生產(chǎn)包
這篇文章主要介紹了vue-cli項目根據(jù)線上環(huán)境打出測試包和生產(chǎn)包的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05從零開始Vue3數(shù)據(jù)交互之promise用法詳解
這篇文章主要介紹了Axios的基本使用,包括異步編程的基礎(chǔ)知識,如Promise的介紹、特點和基本用法,以及如何使用then、catch和async/await來處理異步操作,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02VUE實現(xiàn)分布式醫(yī)療掛號系統(tǒng)預(yù)約掛號首頁步驟詳情
這篇文章主要為大家介紹了VUE實現(xiàn)分布式醫(yī)療掛號系統(tǒng)預(yù)約掛號首頁步驟詳情,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-04-04