国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

今天,學會這5個Vue高級實戰技巧就夠了!

開發 前端
今天,我們來分享幾個不可不知的vue高級實戰技巧。我們平時可能這樣引入注冊組件。每次都得需要在頭部引入,然后注冊,最后在模板上使用。

[[411324]]

前言

今天,我們來分享幾個不可不知的vue高級實戰技巧。

技巧

自動注冊組件

我們平時可能這樣引入注冊組件。每次都得需要在頭部引入,然后注冊,最后在模板上使用。

  1. <template> 
  2.   <div id="app"
  3.     <HelloWorld msg="Welcome to Your Vue.js App"/> 
  4.   </div> 
  5. </template> 
  6.  
  7. <script> 
  8. import HelloWorld from './components/HelloWorld.vue' 
  9.  
  10. export default { 
  11.   name'App'
  12.   components: { 
  13.     HelloWorld 
  14.   } 
  15. </script> 

 

那么,有沒有更加方便快捷的方法呢?我們不妨這樣。

創建一個名為globalRC.js文件,假設我們這里與組件平級,即存放在組件文件夾中。

目錄結構如:

  1. -src 
  2. --components 
  3. ---component1.vue 
  4. ---globalRC.js 

globalRC.js:

  1. import Vue from 'vue' 
  2.  
  3. function changeStr (str){ 
  4.     return str.charAt(0).toUpperCase() + str.slice(1); 
  5.  
  6. const requireComponent = require.context('./',false,/\.vue$/); // './'操作對象為當前目錄 
  7.  
  8. requireComponent.keys().forEach(element => { 
  9.     const config = requireComponent(element); 
  10.  
  11.     const componentName = changeStr( 
  12.         element.replace(/^\.\//,'').replace(/\.\w+$/,''
  13.     ) 
  14.      
  15.     Vue.component(componentName, config.default || config) 
  16. }); 

然后,我們需要在main.js文件中引入。

  1. import './components/globalRC.js' 

最后,我們只需要在模板直接使用就可以了。

  1. <template> 
  2.   <div id="app"
  3.     <Component1 /> 
  4.   </div> 
  5. </template> 
  6.  
  7. <script> 
  8. export default { 
  9.   name'App' 
  10. </script> 

 

注意,require.context是webpack的一個API,所以,需要基于webpack環境才可以使用。

自動注冊路由

這是我們之前注冊路由的方式。如果路由文件多了,會顯得特別臃腫。

  1. import Vue from "vue"
  2. import VueRouter from "vue-router"
  3. // 引入組件 
  4. import home from "../views/home.vue"
  5. import about from "../views/about.vue"
  6.   
  7. // 要告訴 vue 使用 vueRouter 
  8. Vue.use(VueRouter); 
  9.   
  10. const routes = [ 
  11.     { 
  12.         path:"/"
  13.         component: home 
  14.     }, 
  15.     { 
  16.         path: "/about"
  17.         component: about 
  18.     } 
  19.   
  20. var router =  new VueRouter({ 
  21.     routes 
  22. }) 
  23.  
  24. export default router; 

我們可以這樣優化一下。

在路由文件夾下,這里假設是名為router文件夾下,創建一個routeModule.js文件。

目錄結構如:

  1. -src 
  2. --router 
  3. ---index.js 
  4. ---login.module.js 
  5. ---routeModule.js 

routeModule.js:

  1. const routerList = []; 
  2.  
  3. function importAll(r){ 
  4.     r.keys().forEach(element => { 
  5.         routerList.push(r(element).default); 
  6.     }); 
  7.  
  8. importAll(require.context('./',true,/\.module\.js/));// 這里自定義為.module.js 結尾的文件 
  9. export default routerList 

然后,我們只需要創建對應的路由文件,如:login.module.js。

  1. export default { 
  2.     path:'/login'
  3.     name:'login'
  4.     component:()=>import('../views/login.vue'

最后,在路由配置文件index.js中引入routeModule.js文件即可,

  1. import Vue from "vue"
  2. import VueRouter from "vue-router"
  3. import routerList from './routeModule.js' 
  4.   
  5. Vue.use(VueRouter); 
  6.    
  7. var router =  new VueRouter({ 
  8.     routerList 
  9. }) 
  10.  
  11. export default router; 

注意,require.context是webpack的一個API,所以,需要基于webpack環境才可以使用。

權限自定義指令

平常,我們可能會遇到按鈕級別或者頁面內操作權限的需求,我們可以寫一個全局自定義指令。首先,可以在入口文件main.js文件中。

  1. import Vue from 'vue' 
  2. import App from './App.vue' 
  3.  
  4. function checkArray(key){ 
  5.     let arr = [1,2,3,4]; // 自定義權限列表 
  6.     let index = arr.indexOf(key); 
  7.     if(index>-1){ 
  8.         return true 
  9.     }else
  10.         return false 
  11.     } 
  12.  
  13. Vue.directive('auth-key',{ 
  14.   inserted(el,binding){ 
  15.     let displayKey = binding.value; 
  16.     if(displayKey){ 
  17.       let hasPermission = checkArray(displayKey); 
  18.       if(!hasPermission){ 
  19.         el.parentNode && el.parentNode.removeChild(el); 
  20.       } 
  21.       else
  22.         throw new Error('需要key'
  23.       } 
  24.     } 
  25.   } 
  26. }) 
  27.  
  28. new Vue({ 
  29.   render: h => h(App), 
  30. }).$mount('#app'

在頁面中使用。

  1. <button v-auth-key="8">btn</button>  

render渲染函數

我們首先來看下這樣一個例子,你會看到模板上特別多的條件判斷。

  1. <template> 
  2.     <div> 
  3.         <h1 v-if="level === 1"></h1> 
  4.         <h2 v-else-if="level === 2"></h2> 
  5.         <h3 v-else-if="level === 3"></h3> 
  6.         <h4 v-else-if="level === 4"></h4> 
  7.     </div> 
  8. </template> 

怎么才能優化呢?接下來,我們可以使用render渲染函數。

  1. Vue.component('anchored-heading', { 
  2.   render: function (createElement) { 
  3.     return createElement( 
  4.       'h' + this.level,   // 標簽名稱 
  5.       this.$slots.default // 子節點數組 
  6.     ) 
  7.   }, 
  8.   props: { 
  9.     level: { 
  10.       type: Number, 
  11.       required: true 
  12.     } 
  13.   } 
  14. }) 

局部引入第三方UI框架優化

我們經常使用UI框架,如果我們使用按需加載的話,需要每次都要注冊使用一下。就像下面這樣:

  1. import Vue from 'vue'
  2. import { Button, Select } from 'element-ui'
  3. import App from './App.vue'
  4.  
  5. Vue.component(Button.name, Button); 
  6. Vue.component(Select.nameSelect); 
  7. /* 或寫為 
  8.  * Vue.use(Button) 
  9.  * Vue.use(Select
  10.  */ 
  11.  
  12. new Vue({ 
  13.   el: '#app'
  14.   render: h => h(App) 
  15. }); 

我們可以這樣優化一下,創建一個uIcompontents.js文件。

  1. // 每次只需要在這添加組件即可 
  2. import { Button, Select } from 'element-ui'
  3.  
  4. const components = { Button, Select }; 
  5.  
  6. function install(Vue){ 
  7.     Object.keys(components).forEach(key => Vue.use(components[key])) 
  8.  
  9. export default { install } 

然后,在main.js文件中引入。

  1. import Vue from 'vue' 
  2. import App from './App.vue'
  3.  
  4. import uIcompontents from "./uIcompontents.js"
  5. Vue.use(uIcompontents); 
  6.  
  7. new Vue({ 
  8.   el: '#app'
  9.   render: h => h(App) 
  10. }); 

本文轉載自微信公眾號「前端歷劫之路」,可以通過以下二維碼關注。轉載本文請聯系前端歷劫之路公眾號。

 

責任編輯:武曉燕 來源: 前端歷劫之路
相關推薦

2021-06-30 00:14:24

JS代碼數組

2019-08-20 14:40:35

Redis數據庫

2021-06-21 09:22:53

按鈕設計UI標簽

2024-01-10 16:46:13

Kubernetes容器

2021-01-18 11:41:22

SQL數據庫編程語言

2021-08-17 11:20:25

Vue前端技巧

2020-09-03 11:09:14

設計圖標UI設計師

2022-05-10 09:33:50

Pandas技巧代碼

2022-08-09 15:38:55

Linux

2024-11-11 10:00:00

2024-08-30 14:21:04

2025-09-04 02:11:00

數據指標框架

2022-04-07 13:02:53

前端緩存

2010-08-13 14:44:26

思科路由器IOS軟件

2021-07-09 17:17:09

文件場景內核

2021-08-04 00:10:49

場景版本大文件

2024-07-03 08:49:32

2025-07-24 09:45:43

2025-02-13 08:06:54

2009-08-26 08:42:09

思科認證考試資料CCNA實戰技巧
點贊
收藏

51CTO技術棧公眾號

不卡亚洲精品| 国产有码在线| 大白屁股一区二区视频| 欧美xxxx18| 欧美午夜在线一二页| 玖玖在线免费视频| 亚洲色图欧美偷拍| 免费观看黄色网| 伊人色综合久久天天人手人婷| 高清一区在线观看| 高清免费成人av| 久久精品香蕉视频| 国产农村妇女精品| 依依成人在线| 欧美性受xxxx| 91av俱乐部| 亚欧精品一区| 91最新地址在线播放| 午夜精品美女久久久久av福利| 综合视频在线| 国产一区二区丝袜高跟鞋图片| 偷窥自拍亚洲色图精选| 欧美日韩爱爱视频| 国产电影一区二区| 欧美成人精品xxx| 国产电影一区二区| 久操成人在线视频| 亚洲免费一区| 欧美日韩aaaa| 免费看久久久| 国产成人精品免费久久久久| 精品久久中文| 国产精品久久久久久久app| 国产剧情在线观看一区| 国产精品久久久久久久9999| 日韩国产欧美一区二区| 国产欧美一区二区三区久久| 91精品国产91久久久久久密臀| 91精品在线一区| 黄色国产精品| 欧美日韩喷水| 国产一区不卡视频| 国产毛片视频网站| 国产人妖乱国产精品人妖| 婷婷丁香六月天| 色播五月激情综合网| 五月婷婷在线视频| 亚洲大尺度美女在线| 午夜激情在线播放| 欧美极品美女电影一区| 久久99影视| 极品校花啪啪激情久久| 国产在线精品不卡| 成人www视频网站免费观看| 一区二区免费看| 成人在线免费观看| 亚洲精品在线不卡| 久久成人福利| 国产精品一区二区三区不卡 | 一本久久综合| 国产精品波多野结衣| 99久久精品国产观看| 成色在线视频| 7777精品伊人久久久大香线蕉 | 欧美日本韩国国产| 91香蕉视频在线| 亚在线播放中文视频| 欧美成人女星排行榜| 成人在线啊v| 国产精品美女在线| 卡一卡二国产精品| 成全视频在线播放大地| 欧美日韩一级黄| 国产电影一区| 懂色中文一区二区三区在线视频| 国产一区二区日韩精品| 日本桃色视频| 亚洲欧洲午夜一线一品| 国产尤物久久久| 日本高清xxxx| 色综合天天做天天爱| 亚洲天堂一区二区| 国产日韩av高清| 成人激情小说网站| 日韩欧美电影在线观看| 一区二区三区在线播放欧美| 欧美一区二区三区另类| 日韩精品视频一区二区在线观看| 色综合天天综合| 超碰在线成人| 在线不卡日本| 色偷偷成人一区二区三区91| 三级成人在线| 91精品天堂| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 国产传媒在线视频| 日韩成人在线观看| 国产精品成人a在线观看| 性欧美video另类hd尤物| 精品少妇一区二区| 久久精品色播| 国产欧美日韩小视频| 欧美一区日韩一区| 四季av一区二区凹凸精品| 国产精品久久久久久久乖乖| 欧美一区二区网站| 欧美在线免费一级片| 国产主播在线资源| 欧美精品一区二区在线观看| 中文字幕欧美区| kk眼镜猥琐国模调教系列一区二区| 亚洲色图88| 被下部羞羞漫画| 久久亚洲精品中文字幕冲田杏梨| 日本一区二区三区久久久久久久久不| 深夜激情久久| 日本男女交配视频| 精品粉嫩aⅴ一区二区三区四区| 成人激情校园春色| 91在线看黄| 激情五月五月婷婷| 亚洲国产一区二区三区四区| 五月综合久久| 国产精品xxxx| 中文字幕欧美国产| 免费不卡中文字幕在线| 天堂成人在线| 欧美在线视频一区二区三区| 国产做受高潮69| 亚洲人成电影网| 亚洲成年人在线| 欧美日本精品一区二区三区| 亚洲激情图片一区| 成人免费av资源| 国产呦萝稀缺另类资源| 日韩中文字幕一区二区三区| 亚洲精品成人无限看| 色在线免费观看| 又黄又爽毛片免费观看| 一区二区三区av| 国产精品视频xxx| 九九热这里只有精品6| 欧美亚洲综合色| 亚洲欧洲日韩av| 欧美激情中文字幕| 欧美欧美午夜aⅴ在线观看| 亚洲高清电影| 欧美日韩视频免费看| 又大又硬又爽免费视频| 欧美亚洲综合一区| 芒果视频成人app| 国产精品av免费观看| 亚洲第一天堂av| 99国产精品视频免费观看| 这里只有精品在线| 啪啪亚洲精品| 免费污视频在线一区| 国产精品影片在线观看| 欧美精品第1页| 日韩欧美中文免费| 欧美mv和日韩mv国产网站| 亚洲精品电影网| 欧美精品亚州精品| 精品一区二区三区国产| 亚洲成人在线视频网站| 国产一级大片免费看| 加勒比日本影视| www免费网站在线观看| 日韩一区二区三区高清在线观看| 性高爱久久久久久久久| 亚洲美女炮图| 9999精品| 午夜欧洲一区| 香蕉久久网站| 一本色道久久综合亚洲精品高清 | 日韩video| 国产91精品青草社区| 91久久嫩草影院一区二区| 岛国视频一区免费观看| 激情欧美一区二区三区中文字幕| 日本欧美精品久久久| 成人免费视频网站在线看| 唐人社导航福利精品| 久久综合国产| 国产一区二区三区四区大秀| 伊色综合久久之综合久久| 永久免费在线| av观看在线| 国产最新精品| 国产精品久久久久毛片软件| 亚洲成人av福利| 欧美成人免费网站| 欧美一级大片在线观看| 成人免费看片视频在线观看| 丝袜老师办公室里做好紧好爽| 成人av网页| 国产wwwxx| 成年人免费在线视频| 2022成人影院| 欧美激情在线免费|