對于從事前端工作的小夥伴,掌握Vue,React這樣的架構可以說是前端基本功了。人人都會用,那我們怎樣才能寫得比别人優雅?比别人漂亮?
鑒于一線網際網路大廠在前沿技術領域的持續研究和大規模投入,直接向他們取經,是最便捷也是最高效的學習方式。
本文将介紹大廠Vue項目兩大最佳實踐:
01 一勞永逸的元件注冊
通常在元件使用前,需要引入後再注冊,但如果高頻元件多了,每次都這樣做,不僅新增很多代碼,效率還低!我們應該如何優化呢?
其實,我們可以借助一下webpack的require.context() 方法來建立自己的(子產品)上下文,進而實作自動動态require元件。
我們先在components檔案夾(這裡面都是些高頻元件)添加一個叫global.js的檔案,在這個檔案裡使用require.context 動态将需要的高頻元件統統打包進來,然後在main.js檔案中引入global.js的檔案。
// global.js檔案
import Vue from 'vue'
function changeStr (str) {
return str.charAt(0).toUpperCase() + str.slice(1)
}
const requireComponent = require.context('./', false, /\.vue$/)
// 查找同級目錄下以vue結尾的元件
const install = () => {
requireComponent.keys().forEach(fileName => {
let config = requireComponent(fileName)
console.log(config) // ./child1.vue 然後用正則拿到child1
let componentName = changeStr(
fileName.replace(/^\.\//, '').replace(/\.\w+$/, '')
)
Vue.component(componentName, config.default || config)
})
}
export default {
install // 對外暴露install方法
}
最後我們就可以随時随地在頁面中使用這些高頻元件,無需再手動一個個引入了。
02 高精度權限控制
——自定義指令directive
我們通常給一個元素添加 v-if / v-show 來做權限管理,但如果判斷條件繁瑣且多個地方需要判斷,這種方式的代碼不僅不優雅而且備援。
針對這種情況,我們可以通過全局自定義指令來處理:我們先在建立個 array.js 檔案,用于存放與權限相關的全局函數:
// array.js
export function checkArray (key) {
let arr = ['1', '2', '3', '4', 'demo']
let index = arr.indexOf(key)
if (index > -1) {
return true // 有權限
} else {
return false // 無權限
}
}
然後在将 array 檔案挂載到全局中:
// main.js
import { checkArray } from "./common/array";
Vue.directive("permission", {
inserted (el, binding) {
let permission = binding.value; // 擷取到 v-permission的值
if (permission) {
let hasPermission = checkArray(permission);
if (!hasPermission) { // 沒有權限 移除Dom元素
el.parentNode && el.parentNode.removeChild(el);
}
}
}
});
最後我們在頁面中就可以通過自定義指令 v-permission 來判斷:
<div class="btns">
<button v-permission="'1'">權限按鈕1</button> // 會顯示
<button v-permission="'10'">權限按鈕2</button> // 無顯示
<button v-permission="'demo'">權限按鈕3</button> // 會顯示
</div>
除了以上分享,還有一些能展現競争力的實踐,你會嗎?
- 我們都會寫元件,但是你知道怎麼讓元件能夠成為高複用性的元件庫型元件嗎?
- 我們都會項目打包上線,但是你知道如何編寫配置檔案能讓打包速度最優化嗎?
- 我們都會寫路由,但是你知道如何寫才能保證多路由子產品解耦,保證更友善增加新的路由子產品嗎?
是否積累優秀實戰經驗已經成為區分前端水準高低的評判标準。秋招在即,大家可能都面臨:項目拿不出手?沒有實戰經驗?面試問底層原理不知道怎麼答?一系列問題。
那麼如何積累實戰經驗跨過大廠面試門檻?
這邊給大家推薦網易資深工程師開設的《網易獨家面試集訓 3天前端直播課》,2天課程,每天2小時,限時0元,讓你收獲大廠的vue優秀實踐。
老師手把手帶教,講解vue項目從0到上線的完整流程。從真實項目實操中總結的方法,肯定能讓你少走彎路,一站式解決前端進階難題~
你能通過課程學到如何寫出高品質代碼、面試必問底層原理、webpack的進階使用技巧……提升上手實戰能力,拿到大廠offer!
網易獨家面試集訓
3天前端直播課
8月17日—8月19日
0元學習 , 每晚8點
01
從0到1掌握vue實踐,上手項目開發
周二
前端必備,從源碼中學會思維與技巧
1、源碼有哪些值得學習的
2、源碼組織模式
3、透過源碼學習設計模式
周三
帶你探究vue-router源碼,
實作一個基礎的vue-router
1、Hash與History
2、路由原理
3、實作一個vue-router
周四
大廠敲門磚,webpack進階使用技巧
1、vue-cli的工作原理
2、webpack的配置
3、用webpack搭建vue開發環境
課程專屬社群
前端社群,技術疑問、面試經驗全面交流。
課程源碼開放
課程源碼全部開放,讓你深入了解網易項目。課後可聯系助教擷取。
1V1配置老師
參與直播打卡,可獲得網易老師1V1履歷指導,就業咨詢!
掃碼聽直播領取
前端進階資料包
添加助教小姐姐一起進步
02
0元領取前端面試題,知識點全覆寫
添加課程助教免費領取網易進階前端開發工程師進階資料包,内涵學習路徑+源碼+項目實戰+面試真題,友善大家重點突破,迅速進階。
現在掃碼,限時3天免費領取。
掃描下方二維碼,擷取高清版
底層原理+項目實戰+面試真題
免費領取
不用轉發,不用分享
03
到課即送網易内部案例課
多重到課福利,參與直播即送:網易嚴選、網易雲等一線實戰項目視訊+項目源碼
免費直播,海量資料,先到先得~
往期直播幹貨回顧↓
04
資深講師手把手帶你了解企業開發模式
唐磊,網易進階前端工程師。
8年工作經驗,過手無數商業項目,主導過日流水百萬級的項目前端開發。精通架構與設計模式,為數家公司定制過架構與前端标準。
參與直播打卡,可獲得老師親自履歷修改,面試輔導,就業咨詢!