這篇文章給大家介紹Vue基于TypeScript的一次錯誤使用分析,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
成都創(chuàng)新互聯(lián)從2013年成立,先為臨潭等服務建站,臨潭等地企業(yè),進行企業(yè)商務咨詢服務。為臨潭企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
在使用Vue基于TypeScript開發(fā)項目時,使用Element UI的Table來做列表數(shù)據(jù)的渲染。
在實際的數(shù)據(jù)中,有一列數(shù)據(jù)存儲的是字典的 code
,這種設計對于后端的模型設計來說是沒有問題的,我們的數(shù)據(jù)持久化只需要關注 code
就可以了。
但是前端顯示的過程中,只顯示 code
值,對用戶來說是不友好的。對于用戶來講,他們需要的是可讀的數(shù)據(jù),即 code
對應的中文描述。
這種問題通常會有兩種解決方案:
code
值,將其轉換成對應的中文描述code
值轉換為對應的中文描述
在本次示例中,我們采用前端處理的方式。
思路
需要處理的列用的是字典值,先從后端將字典數(shù)據(jù)獲取過來,在渲染數(shù)據(jù)的時候,直接使用預加載的字典內容對數(shù)據(jù)進行轉換。
@Component
export default class DictManage extends Vue {
modules = [];
constructor() {
super();
this.$store.dispatch('dict/fetchModules').then(res => {
console.log(res);
this.modules = res;
}).catch(err => console.error(err));
}
public covertModule(code): string {
const module = this.modules.find(it => it.code === code);
return module ? module.name : code;
}
}
_在構造函數(shù)中將數(shù)據(jù)加載進來,可以看到控制臺有打印字典內容。但是在 __covertModul_e
中獲取的 modules
卻讀不到值。
對上面的內容進行了改造,如下:
@Component
export default class DictManage extends Vue {
modules: any[] = [];
created() {
this.$store
.dispatch('dict/fetchModules')
.then(res => {
this.modules = [...res];
})
.catch(err => console.error(err));
}
public covertModule(code): string {
const module = this.modules.find(it => it.code === code);
return module ? module.name : code;
}
}
將預加載的處理遷移到 created()
里面, 此時 covertModule
中可以正常的獲取 modules
值,表格渲染正常。
在TypeScript下開發(fā)的Vue組件,屬性變量modules對應著js下的 data()
中的modules,所以在構造函數(shù)中對modules進行賦值處理時,modules還沒有創(chuàng)建。在covertModule中使用的modules是后來創(chuàng)建的實例,與構造函數(shù)中的不是同一個,所以獲取到的一直是空。
關于Vue基于TypeScript的一次錯誤使用分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
新聞標題:Vue基于TypeScript的一次錯誤使用分析
網(wǎng)頁網(wǎng)址:http://www.chinadenli.net/article4/iepeoe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、ChatGPT、軟件開發(fā)、關鍵詞優(yōu)化、定制網(wǎng)站、面包屑導航
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)