1. 程式人生 > 其它 >vue開發優化方法【基於vue2】【續2】

vue開發優化方法【基於vue2】【續2】

Vue-router

場景:Vue-router是官方提供的路由外掛
1.0快取和動畫

  • 路由是使用官方元件vue-router,這裡只敘述下路由- 的快取和動畫;
  • 可以使用exclude(除了)或者include(包括),2.1.0新增 ,來做判斷
<transition>
	<keep-alive :include"['a','b']">
	//或include="a,b" :include="/a|b/",a和b表示元件的name
	//因為有些頁面,如試試資料統計,要實時重新整理,所以就不需要快取
	<router-view/> //路由標籤
	</keep-alive>
	<router-view exclude="c"/>
	// c表示元件的name值
</transition>

注:匹配首先檢查元件自身的name選項,如果name選項不可用,則匹配它的區域性註冊名稱(父元件components選項的鍵值)。匿名元件不能被匹配
4.用v-if做判斷,元件會重新渲染,但是不用一一列舉元件 name
1.2全域性路由鉤子

1.3元件路由鉤子



1.4路由模式
直接在路由中設定mode屬性:hash或history
1.5Vue.$router
this.$router.push();跳轉url,但是這個方法會向history棧新增一個記錄,點選後退會返回到上一個頁面
this.$router.replace();url跳轉不會有記錄
this.$router.go(n);類似window.history.go(n)
1.6Vue.$route


表示當前跳轉的路由物件,屬性有:
name:路由名稱,
path:路徑,
query:傳參接收值,
params:傳參接收值,
fullPath:完成解析後的URL,包含查詢引數和hash的完整路徑,
matched:路由記錄副本,
redirectedFrom:如果存在重定向,即為重定向來源的路由的名字
this.$route.params.id:獲取通過 params 或/:id傳參的引數
this.$route.query.id:獲取通過 query 傳參的引數
1.7router-view的key
場景:由於vue會複用相同的元件,即 /page/1 => /page/2 或者 /page?id=1 => /page?id=2 這類連結跳轉時, 將不在執行created, mounted之類的鉤子

<router-view :key="$route.fullPath"></router-view>

這樣元件的created和mounted就都會執行

待續 !!!