国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue學習筆記11--路由2(路由傳參/命名路由)

這篇具有很好參考價值的文章主要介紹了Vue學習筆記11--路由2(路由傳參/命名路由)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、路由的query傳參

  1. 路由的query參數(shù)
  • 傳遞參數(shù)
<!--跳轉(zhuǎn)路由并攜帶query參數(shù), to的字符串寫法-->
<!-- <router-link :to='`/home/message/detail?id=${m.id}&title=${m.title}`'>{{ m.title }}</router-link> -->
<!--跳轉(zhuǎn)路由并攜帶query參數(shù), to的對象寫法-->
<router-link :to="{
    path: '/home/message/detail',
    query:{
            id:m.id,
            title:m.title
           }
}">
   {{ m.title }}
</router-link>
  • 接收參數(shù)
$route.query.id 
$route.query.title

二、命名路由

  1. 作用:可以簡化路由的跳轉(zhuǎn)
  2. 使用方法
  • 給路由命名:
{
  path:'/demo',
  component:Demo,
  children:[
    {
      path:'test',
      component:Test,
      children:[
        {
          name:'hello' //給路由命名
          path:'welcome',
          component:Hello,
        }
      ]
    }
  ]
}
  • 簡化跳轉(zhuǎn)
<!--簡化前,需要寫完整的路徑-->
<router-link to="/demo/test/welcome">跳轉(zhuǎn)</router-link>

<!--簡化后,直接通過名字跳轉(zhuǎn)-->
<router-link :to="{name:hello}">跳轉(zhuǎn)</router-link>

<!--簡化寫法配合傳遞參數(shù)-->
<router-link
  :to="{
    name:'hello',
    query:{
      id:001,
      title:'你好!'
    }
  }"

三、路由的params傳參

  1. 配置路由,聲明接收params參數(shù)
{
	path: '/home',
	component: Home,
	children: [ //通過children配置子路由
	{
		path: 'news', //此處一定不要寫成:/news
		component: News,
	},
	{
		path: 'message', //此處一定不要寫成:/message
		component: Message,
		children: [
			{
				name:'xiangqing',
				path: 'detail/:id/:title', //使用占位符聲明接收params參數(shù)
				component: Detail,
			}
		]
	}
	],
},
  1. 傳遞參數(shù)
<!--跳轉(zhuǎn)路由并攜帶params參數(shù), to的字符串寫法-->
<router-link :to='`/home/message/detail/${m.id}/${m.title}`'>{{ m.title }}</router-link>
 <!--跳轉(zhuǎn)路由并攜帶params參數(shù), to的對象寫法-->
 <router-link :to="{
      name: 'xiangqing',
      params:{
              id:m.id,
               title:m.title
              }
      }"
>
     {{ m.title }}
</router-link>
  • 特別注意:路由攜帶params參數(shù)時,若使用to對象寫法,則不能使用path配置項,必須使用name配置!
  1. 接收參數(shù)
$route.params.id 
$route.params.title

四、配置路由的props配置

作用:讓路由組件更方便的收到參數(shù)

{
	name:'xiangqing',
	path: 'detail/:id/:title',
	component: Detail,
	//props的第一種寫法,值為對象,該對象中的所有key-value都會以props的形式傳給Detail組件。
	// props:{a:1, b:'hello'}
	//props的第二種寫法,值為布爾值,若布爾值為真,就會該路由組件收到的所有params參數(shù),以props的形式傳給Detail組件。
	// props:true,
	//props的第三種寫法,值為函數(shù),該函數(shù)返回的對象中每一組key-value都會通過props傳給Detail組件。
	props($route){
		return {
			id:$route.query.id,
			//id:$route.params.id,
			title:$route.query.title
			//title:$route.params.title
		}
	},
}

五、<router-link>的replace屬性

  1. 作用:控制路由跳轉(zhuǎn)時操作瀏覽器歷史記錄的模式
  2. 瀏覽器的歷史記錄有兩種寫入方式:分別為pushreplace,push要追加歷史記錄,replace是替換當前記錄,路由跳轉(zhuǎn)時候默認為push
  3. 如何開啟replace模式:<router-link replace ......>News</router-link>

六、編程式路由導航

  1. 作用:不借助實現(xiàn)路由跳轉(zhuǎn),讓路由跳轉(zhuǎn)更加靈活
  2. 具體編碼:
this.$router.push({
     name: 'xiangqing',
     query:{
         id:m.id,
         title:m.title
     }
})

this.$router.push({
     name: 'xiangqing',
     query:{
         id:m.id,
         title:m.title
     }
})

this.$router.forward()//前進
this.$router.back()//后退
this.$router.go(-3)//可前進或后退,負數(shù)-》倒退;正數(shù)-》前進

七、緩存路由組件

  1. 作用:讓不展示的路由組件保持掛載,不被銷毀。
  2. 具體編碼:
//緩存多個路由組件
//<keep-alive :include=["News","Message"]> 
//緩存一個路由組件
<keep-alive include="News"> //此次News為組件名,
	<router-view></router-view>
</keep-alive>

注: 不加include則所有的路由組件都會被緩存

八、兩個新的生命周期鉤子

1.作用:路由組件所獨有的兩個鉤子,用于捕獲路由組件的激活狀態(tài)。
2.具體名字:文章來源地址http://www.zghlxwxcb.cn/news/detail-821521.html

  • activated路由組件被激活時觸發(fā)
  • deactivated路由組件失活時觸發(fā)

九、路由守衛(wèi)

  1. 作用:對路由進行權(quán)限控制
  2. 分類:全局守衛(wèi)、獨享守衛(wèi)、組件內(nèi)守衛(wèi)
  3. 全局守衛(wèi):
/全局前置路由守衛(wèi)--初始化及每次路由切換之前被調(diào)用
router.beforeEach((to, from, next) => {
	// to and from are both route objects. must call `next`.
	console.log('前置路由守衛(wèi)',to,from,next)
	if (to.meta.isAuth) {//判斷是否需要鑒權(quán)
		if(localStorage.getItem('school')==='atguigu'){
			next() //放行
		}else{
			alert('學校名不對,無權(quán)限查看!')
		}
	}else{
		next()//放行
	}
})
//全局后置路由守衛(wèi)--初始化及每次路由切換之后被調(diào)用
router.afterEach((to, from, next) => {
	// to and from are both route objects. must call `next`.
	console.log('后置路由守衛(wèi)',to,from,next);
	if (to.meta.title){
		document.title = to.meta.title //修改網(wǎng)頁的title
	}else{
		document.title = 'vue_test'
	}
	
})

  1. 獨享路由守衛(wèi)
beforeEnter: (to, from, next) => {
	console.log('前置路由守衛(wèi)',to,from,next)
	if (to.meta.isAuth) {//判斷是否需要鑒權(quán)
	    if(localStorage.getItem('school')==='atguigu'){
			next() //放行
	    }else{
			alert('學校名不對,無權(quán)限查看!')
		}
	}else{
		next()//放行
	 }
}
  1. 組件內(nèi)守衛(wèi)
//通過路由規(guī)則,進入該組件時被調(diào)用
beforeRouteEnter(to, from, next) {

},
//通過路由規(guī)則,離開該組件時被調(diào)用
beforeRouteLeave(to, from, next) {

}

十、路由器的兩種工作模式

  1. 對于一個url來說,什么是hash值?#及其后面的內(nèi)容就是hash值
  2. hash值不會包含在 HTTP 請求中,即: hash值不會帶給服務(wù)器。
  3. hash模式:
  • 地址中永遠帶著#號,不美觀。
  • 若以后將地址通過第三方手機app分享,若app校驗嚴格,則地址會被標記為不合法
  • 兼容性較好
  1. history模式
  • 地址干凈,美觀。
  • 兼容性和hash模式相比略差
  • 應(yīng)用部署上線時需要后端人員支持,解決刷新頁面服務(wù)端404的問題

到了這里,關(guān)于Vue學習筆記11--路由2(路由傳參/命名路由)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • vue路由傳參

    之前,查了其他博客,總結(jié)一篇,發(fā)現(xiàn)貌似不對??,因此又查了一遍好不容易寫了出來。 一種是,這樣滴。 跳轉(zhuǎn)之后,路由路徑是這樣滴,添加了參數(shù)。 在router中的index.js對應(yīng)的路由路徑,可以不用修改,用原路徑就可以。 this.$routr.query.id 拿到值 跳轉(zhuǎn)之后,頁面路徑變?yōu)?/p>

    2024年02月11日
    瀏覽(12)
  • 【前端】vue.js從入門到項目實戰(zhàn)筆記

    【前端】vue.js從入門到項目實戰(zhàn)筆記

    【前端目錄貼】 文本插值中的代碼被解釋為節(jié)點的文本內(nèi)容,而HTML插值中的代碼則被渲染為視圖節(jié)點。 3.1.1 文本插值 文本插值的方式:用 雙大括號 將要綁定的變量、值、表達式括住就可以實現(xiàn),Vue將會 獲取計算后的值 ,并以 文本的形式 將其展示出來。 結(jié)果: 3.1.2 HTM

    2024年01月21日
    瀏覽(30)
  • vue路由傳參(六種方式)

    1.query傳參: ????????query傳參,通過get傳參也就是原始傳參,在path路徑后面跟上?id=18name=“張三”,會傳遞到query里面 ? ? ? ? 實例:?{ ? ? ? ? ????????path:\\\'/home\\\'?name=\\\'張三\\\'age=18, ? ? ? ????????? component:()=import(\\\'./home.vue\\\') ? ?????????} ????????通過$ro

    2024年02月13日
    瀏覽(14)
  • Vue前端 更具router.js 中的meta的roles實現(xiàn)路由衛(wèi)士,實現(xiàn)權(quán)限判斷。

    Vue前端 更具router.js 中的meta的roles實現(xiàn)路由衛(wèi)士,實現(xiàn)權(quán)限判斷。

    參考了之篇文章 1、我在登陸時獲取到登錄用戶的角色名roles,并存入sessionStorage中,具體是在login頁面實現(xiàn),還是在menu頁面實現(xiàn)都可以。在menu頁面實現(xiàn),可以顯得登陸快一些。 2、編寫router.js,注意,一個用戶可能有多個角色。 這里有個bug 我們的roles存在sessionStorage中,關(guān)閉

    2024年02月13日
    瀏覽(20)
  • Vue 11種組件傳參方式

    1. props 和 emit vue2 父組件 子組件 vue3 父組件 子組件 2. $attrs 和 $listeners 3. v-model vue2 vue2 v-mode 是 :value=\\\"msg\\\" @input=\\\"msg=$event\\\" 的語法糖 父組件 子組件 vue3 vue3 v-mode 是 :modelValue=\\\"msg\\\" @update:modelValue=\\\"msg=$event\\\" 的語法糖 父組件 子組件 4. 作用域插槽 5. $refs, $root, $parent, $children $root 獲取

    2024年02月10日
    瀏覽(14)
  • vue3路由配置及路由跳轉(zhuǎn)傳參

    vue3路由配置及路由跳轉(zhuǎn)傳參

    在src目錄下創(chuàng)建pages文件夾,里面創(chuàng)建兩個vue文件命名為student.vue,person.vue 分別編寫兩個vue文件 student.vue和person.vue 在src目錄下配置router.js文件 在main.js中使用路由 在app.vue中進行路由展示,使用router-link進行路由跳轉(zhuǎn),to代表跳轉(zhuǎn)到哪個路由 效果如下圖所示,點擊(到student路由

    2024年01月20日
    瀏覽(29)
  • VUE路由傳參的實用方式

    本文講解了VUE項目中路由之間的傳值方式,涉及到的方法都是開發(fā)時常用的,希望對大家有多幫助。 首先定義好路由 在需要跳轉(zhuǎn)的home組件中使用 router-link 標簽 在跳轉(zhuǎn)到的about組件中拿到傳過來的值 小結(jié):params傳參類似post,路由配置可以為? path : \\\'/about/ : id’ 或 ??path :

    2024年02月08日
    瀏覽(26)
  • 【Vue-Router】路由傳參

    【Vue-Router】路由傳參

    list.json login.vue reg.vue App.vue index.ts reg.vue item?.name ,item?.price ,item?.id ,他們?nèi)绻皇褂每蛇x鏈操作符會出現(xiàn)報錯: \\\'__VLS_ctx.item\\\' is possibly \\\'undefined\\\'. login.vue 注意: 傳遞 params 參數(shù)時,若使用 to 的對象寫法,必須使用 name 配置項,不能用 path 。 傳遞 params 參數(shù)時,需要提前在規(guī)

    2024年02月13日
    瀏覽(20)
  • vue路由傳參的三種方式

    目錄 1.動態(tài)路由傳參 2.params傳參 3.query傳參 ? ? ? ? 使用“路徑參數(shù)”使用冒號? : ?標記。當匹配到一個路由時,參數(shù)值會被設(shè)置到? this.$route.params ,也可以使用props來接收 ??params ?傳參(不顯示參數(shù))也可分為 聲明式 和 編程式 兩種方式,與方式一不同的是,這里是通過

    2024年02月11日
    瀏覽(20)
  • 路由跳轉(zhuǎn)和傳參(vue3)

    準備工作:安裝了路由,配置了路由表,全局注冊了路由 ? vue3路由官方文檔 安裝路由 npm yarn 路由跳轉(zhuǎn) 首先在需要跳轉(zhuǎn)的頁面引入 API---useRouter 在跳轉(zhuǎn)頁面定義router變量 用 router.push跳轉(zhuǎn)頁面 (導航到不同的位置) 用router.replace(替換當前位置) 用router.go橫跨歷史 路由傳參 一.標

    2024年02月10日
    瀏覽(52)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包