成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Vue使用技巧和項目中遇到的問題

新聞 前端
這里給大家分享一下vue使用技巧和項目中遇到的問題,希望對大家有用處。

這里給大家分享一下Vue中的一些技巧,希望對大家有用處。(話不多說上代碼)

1. Vue路由攔截瀏覽器后退實現表單保存類似需求(為了防止用戶突然離開,沒有保存已輸入的信息。)

  1. //在路由組件中: 
  2. mounted(){ 
  3. }, 
  4. beforeRouteLeave (to, from, next) { 
  5.  if(用戶已經輸入信息){ 
  6.  //出現彈窗提醒保存表單,或者自動后臺為其保存 
  7.    
  8.  }else
  9.  next(true);//用戶離開 
  10.  } 

請參考Vue文檔全局鉤子和組件鉤子

2. 路由懶加載寫法:

  1. // 我所采用的方法,個人感覺比較簡潔一些,少了一步引入賦值。 
  2. const router = new VueRouter({ 
  3.  routes: [ 
  4.  path: '/app'
  5.  component: () => import('./app'), // 引入組件 
  6.  ] 
  7. }) 
  8. // Vue路由文檔的寫法: 
  9. const app = () => import('./app.vue'// 引入組件 
  10. const router = new VueRouter({ 
  11.  routes: [ 
  12.  { path: '/app', component: app } 
  13.  ] 
  14. }) 
  15. //前端全棧學習交流圈:866109386 
  16. //面向1-3經驗年前端開發人員 
  17. //幫助突破技術瓶頸,提升思維能力 

3,路由的項目啟動頁和404頁面

一般項目都會設置這個,如果默認進入地址會跳到login頁面,如果你輸入的是一個沒有用的路由或者是空路由會跳轉到notFind頁面(你自己設置的404頁面)

  1. export default new Router({ 
  2.  routes: [ 
  3.  { 
  4.   path: '/'// 項目啟動頁 
  5.   redirect:'/login' // 重定向到下方聲明的路由  
  6.  }, 
  7.  { 
  8.   path: '*'// 404 頁面  
  9.   component: () => import('./notFind'// 或者使用component也可以的 
  10.  }, 
  11.  ] 
  12. }) 

4. setInterval路由跳轉繼續運行并沒有銷毀問題

  1. beforeDestroy(){ 
  2.   //我通常是把setInterval()定時器賦值給this實例,然后就可以像下面這么暫停。 
  3.  clearInterval(this.intervalid); 
  4. }, 

beforeDestroy方法是生命周期里組件銷毀前執行的鉤子函數,在離開的時候會觸發這個方法,這個方法在其他的地方也會有妙用,希望大家可以去了解一下。

5,setTimeout/setInterval this指向改變,無法用this訪問VUe實例

這個地方大家的默認方法肯定是:

  1. //使用變量訪問this實例 
  2. let self=this
  3.  setTimeout(function () {  
  4.   console.log(self);//使用self變量訪問this實例 
  5.  },1000); 

其實這個地方我們可以用箭頭函數,因為箭頭函數會改變this的指向,而指向的剛好是自己的父級this,所以我們可以這樣用:

  1. //箭頭函數訪問this實例 因為箭頭函數本身沒有綁定this 
  2.  setTimeout(() => {  
  3.  console.log(this); 
  4. }, 500); 

這樣我們的this就是指向我們的vue實例了。

6,Vue 數組/對象更新 視圖不更新

方法一:直接使用最簡單也是最有效的方法,深拷貝對象或者數組,視圖會進行更新,不過會有一個缺點,深拷貝后的數組或者對象不是原來的那個數組或者對象,是你現在改變了之后的值。

上代碼:

你的對象或者數組=JSON.parse(JSON.stringify(你的對象或者數組))
先進行轉字符串,再轉回對象,這個就進行了一個拷貝的過程,會觸發視圖的改變,同時也進行了一個數組的替換,有利有弊。

方法二:this.$set(你要改變的數組/對象,你要改變的位置/key,你要改成什么value)

  1. this.$set(this.arr, 0, "OBKoro1"); // 改變數組 
  2. this.$set(this.obj, "c""OBKoro1"); // 改變對象 

這個是vue專門為改變不了數組設定的一個方法,使用也很簡單(如果還是不懂請參考vue文檔)

7,深度watch與watch立即觸發回調

watch很多人都在用,但是這watch中的這兩個選項deep、immediate,或許不是很多人都知道,我猜。

選項:deep

在選項參數中指定 deep: true,可以監聽對象中屬性的變化。

選項:immediate

在選項參數中指定 immediate: true, 將立即以表達式的當前值觸發回調,也就是默認觸發一次。

  1. watch: { 
  2.  obj: { 
  3.   handler(val, oldVal) { 
  4.   console.log('屬性發生變化觸發這個回調',val, oldVal); 
  5.   }, 
  6.   deep: true // 監聽這個對象中的每一個屬性變化 
  7.  }, 
  8.  step: { // 屬性 
  9.   //watch 
  10.   handler(val, oldVal) { 
  11.   console.log("默認觸發一次", val, oldVal); 
  12.   }, 
  13.   immediate: true // 默認觸發一次 
  14.  }, 
  15.  }, 
責任編輯:張燕妮 來源: 簡書
相關推薦

2018-05-02 09:18:17

Linux技巧嵌入式

2020-09-27 10:35:22

Vue前端代碼

2021-05-06 09:06:12

Vue Router組件視圖

2024-09-09 05:30:00

數據庫Spring

2024-09-12 15:36:57

2022-03-26 13:31:18

項目node變量

2020-12-15 12:43:53

Nodenode應用NodeJS

2009-06-24 17:34:58

使用JSF的經驗

2023-12-21 08:51:37

防抖節流Vue.js

2023-09-14 08:46:50

ReactVue

2022-11-18 07:54:02

Go中間件項目

2021-03-02 09:45:07

java循環依賴開發技術

2020-04-24 20:05:16

VueAxios前端

2020-10-27 14:15:42

SpringBoot

2022-09-30 09:04:29

開源開發

2010-08-31 16:01:18

CSS

2011-07-08 08:37:05

軟件開發

2009-06-29 15:51:48

Spring容器

2011-09-05 14:26:43

PhoneGap插件

2022-03-08 06:31:41

DebugRelease
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91日b| 国产一区二区免费电影 | 成人午夜电影在线观看 | 欧美精品一区二区免费 | 三级av在线 | 国产精品视频在线观看 | 伊人免费观看视频 | 欧美一区在线视频 | 国户精品久久久久久久久久久不卡 | 日日碰碰| 中文字幕日韩欧美一区二区三区 | 日韩欧美在线视频一区 | 成人国产精品久久久 | 日韩欧美中文在线 | 久久久久久久国产精品影院 | 亚洲视频一区在线观看 | 亚洲精品久久久一区二区三区 | 国产精品久久久久久中文字 | 国产极品粉嫩美女呻吟在线看人 | 夜夜爽夜夜操 | h视频在线播放 | 国产成人精品一区二区三区网站观看 | 在线2区 | 午夜在线免费观看视频 | 国产精品久久性 | 国产免费福利在线 | 日韩精品一区二区三区中文在线 | 国产精品精品久久久 | 男人天堂社区 | 久久久91 | 欧美一级片黄色 | 最新中文字幕第一页视频 | 日韩三级| 日本天天操 | 四虎影院在线观看av | 中文字幕亚洲欧美日韩在线不卡 | 亚洲在线| 国产欧美久久精品 | 午夜欧美一区二区三区在线播放 | 成人亚洲性情网站www在线观看 | 午夜网址|