CRMEB知識(shí)付費(fèi)中存在一些被視為常量的數(shù)據(jù),如專題類型、評(píng)分類型和題型。
專題類型:圖文、音頻、視頻、直播、專欄、輕專題
評(píng)分類型:非常差、差、一般、好、非常好
題型:?jiǎn)芜x題、多選題、判斷題
以上這些不被經(jīng)常更改的數(shù)據(jù),我們都可以做成常量數(shù)據(jù)在使用時(shí)進(jìn)行數(shù)據(jù)映射。在CRMEB知識(shí)付費(fèi)的專題列表的類型展示時(shí)使用數(shù)據(jù)映射能夠快速的確認(rèn)數(shù)據(jù)。類似這種情況的,都可以使用數(shù)據(jù)映射。
做數(shù)據(jù)映射時(shí),先要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)集,把要進(jìn)行數(shù)據(jù)映射的數(shù)據(jù)寫入進(jìn)去。數(shù)據(jù)映射的數(shù)據(jù)類型可以使用Object或者M(jìn)ap。CRMEB知識(shí)付費(fèi)中使用的是Object類型,我們以CRMEB知識(shí)付費(fèi)web項(xiàng)目為例,簡(jiǎn)要說(shuō)明一下。
CRMEB知識(shí)付費(fèi)web項(xiàng)目的常量數(shù)據(jù)在constant.js文件,這個(gè)文件的路徑是public/pc/scripts/constant.js。文件內(nèi)容如下圖所示:
在這里說(shuō)明一下Object數(shù)據(jù)的鍵的類型,Object的鍵的類型是字符串,可以進(jìn)一步這樣理解,能夠轉(zhuǎn)成String類型的數(shù)據(jù)都可以用做鍵名。我們這里使用數(shù)字作為鍵名,在做數(shù)據(jù)映射時(shí)更方便與后臺(tái)數(shù)據(jù)匹配,數(shù)字鍵名在讀取時(shí)也更快。
在專題列表中只需要引入常量數(shù)據(jù)文件,然后將每個(gè)專題的類型字段與常量對(duì)象中的鍵名匹配。其實(shí)數(shù)據(jù)匹配的過(guò)程就是數(shù)據(jù)映射,在這里可以理解成讀取對(duì)象中的屬性。
上圖中展示專題類型的數(shù)據(jù)映射,其中item.type的值是1-6的數(shù)字,把他作為變量屬性讀取constant.special對(duì)象中的值。
以上這些是使用Object做數(shù)據(jù)映射,使用中注意的問(wèn)題需要注意Object類型的限制。后續(xù)可以使用ES6 Map做數(shù)據(jù)映射,這樣會(huì)更好,因?yàn)闆](méi)有鍵名類型的限制,并且可以保證數(shù)據(jù)唯一性的原則。