Vue项目如何提高效率?大厂2大实践总结告诉你
對于從事前端工作的小伙伴,掌握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 然后用正則拿到child1let 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.jsimport { 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天前端直播課》,3天課程,每天2小時,限時0元,讓你收獲大廠的vue優秀實踐。
老師手把手帶教,講解vue項目從0到上線的完整流程。從真實項目實操中總結的方法,肯定能讓你少走彎路,一站式解決前端進階難題~
你能通過課程學到如何寫出高質量代碼、面試必問底層原理、大型項目中的api層該怎么做……
網易獨家面試集訓
3天前端直播課
?8月3日—8月5日?
?0元學習 ,? 每晚8點
01
從0到1掌握vue實踐,上手項目開發
周二
【那些源碼教我的事】一節課教你寫出高質量代碼
源碼有哪些值得學習的?
源碼組織模式?
透過源碼學習設計模式
周三
【技能拓展】一線互聯網項目都有的api層是怎么做的?
Axios源碼分析
大型項目中的api層
二次封裝Axios實例
周四
【用vue3做項目】一節課帶你了解vue3改變了什么
vue3源碼改動詳情
什么是vite
用vite加vue3寫項目
掃碼聽直播領取
前端進階資料包
添加助教小姐姐一起進步
02
資深講師手把手帶你了解企業開發模式
唐磊,網易高級前端工程師。
8年工作經驗,過手無數商業項目,主導過日流水百萬級的項目前端開發。精通架構與設計模式,為數家公司定制過框架與前端標準。
03
0元領取前端面試題,知識點全覆蓋
添加課程助教免費領取網易高級前端開發工程師進階資料包,內涵學習路徑+源碼+項目實戰+面試真題,方便大家重點突破,迅速進階。
現在掃碼,限時3天免費領取。
掃描下方二維碼,獲取高清版
底層原理+項目實戰+面試真題
免費領取
不用轉發,不用分享
04
到課即送網易內部案例課
多重到課福利,參與直播即送:網易嚴選、網易云等一線實戰項目視頻+項目源碼
免費直播,海量資料,先到先得~
往期直播干貨回顧↓
總結
以上是生活随笔為你收集整理的Vue项目如何提高效率?大厂2大实践总结告诉你的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Web 趋势榜:上周最有意思、又实用的
- 下一篇: 前端月趋势榜:7 月最新上榜的、热门的