欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue Router常用屬性詳解

 更新時(shí)間:2023年12月06日 09:43:02   作者:跳跳的小古風(fēng)  
這篇文章主要介紹了vueRouter常用屬性,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

base

基本的路由請(qǐng)求的路徑

如果整個(gè)單頁(yè)應(yīng)用服務(wù)在 /app/ 下,然后 base 就應(yīng)該設(shè)為 “/app/”,所有的請(qǐng)求都會(huì)在url之后加上/app/

new VueRouter({
    base: '/app/',
    ...
  });

mode

設(shè)置路由工作模式hash或history

hash

http:/8000/#/hello

Vue-router 默認(rèn)使用 hash 模式,使用 hash 模式時(shí) url 中始終有 # 號(hào)。不會(huì)刷新頁(yè)面,也不會(huì)發(fā)起新的 HTTP 請(qǐng)求,只是實(shí)現(xiàn)客戶端頁(yè)面的定位#后面的字符不會(huì)被發(fā)送到服務(wù)器端,# 可以修改瀏覽器的訪問(wèn)歷史記錄。hash 模式是通過(guò)改變錨點(diǎn)(#)來(lái)更新頁(yè)面 url,并不會(huì)觸發(fā)頁(yè)面重新加載。通過(guò)window.onhashchange() 監(jiān)聽(tīng)到hash 的改變,從而處理路由。

history

http:/8000/hello

  • Vue-router 默認(rèn)使用 hash 模式,使用 hash 模式時(shí) url 中始終有 # 號(hào)。
  • 不會(huì)刷新頁(yè)面,也不會(huì)發(fā)起新的 HTTP 請(qǐng)求,只是實(shí)現(xiàn)客戶端頁(yè)面的定位
  • #后面的字符不會(huì)被發(fā)送到服務(wù)器端,# 可以修改瀏覽器的訪問(wèn)歷史記錄。
  • hash 模式是通過(guò)改變錨點(diǎn)(#)來(lái)更新頁(yè)面 url,并不會(huì)觸發(fā)頁(yè)面重新加載。
  • 通過(guò)window.onhashchange() 監(jiān)聽(tīng)到hash 的改變,從而處理路由。

history模式下可能會(huì)遇到的問(wèn)題及解決方案

  • 使用history模式通常本地調(diào)試沒(méi)有什么問(wèn)題,但是一旦發(fā)布到測(cè)試或生產(chǎn)環(huán)境,則會(huì)出現(xiàn)頁(yè)面白屏或者刷新頁(yè)面白屏的現(xiàn)象,這種問(wèn)題的出現(xiàn)是因?yàn)榍岸撕头?wù)端沒(méi)有做相應(yīng)的配置
//前端設(shè)置
module.exports = {
  // publicPath默認(rèn)值是'/',即你的應(yīng)用是被部署在一個(gè)域名的根路徑上
  // 設(shè)置為'./',可以避免打包后的靜態(tài)頁(yè)面空白
  // 當(dāng)在非本地環(huán)境時(shí),這里以項(xiàng)目test為例,即打包后的h5項(xiàng)目部署服務(wù)器的test目錄下
  // 那么這里就要把publicPath設(shè)置為/test/,表示所有的靜態(tài)資源都在/test/里
  // 打包部署后,會(huì)發(fā)現(xiàn)index.html引用的靜態(tài)資源都添加了路徑/test/
  publicPath: process.env.NODE_ENV == 'development' ? './' : '/test/',
  ......
}
///服務(wù)端設(shè)置
location /test{
  ...
  try_files $uri $uri/ /test/index.html 
  //location /test表示項(xiàng)目部署在了 /test目錄下,這里要跟vue.config.js里的publicpath的值保持一致。
之所以刷新頁(yè)面白屏,其實(shí)是因?yàn)槁酚少Y源不存在
}

routes

屬性設(shè)置匹配的路由地址path與路由組件component

new Router({
    ...
    routes: [
        {
            path: '/',
            component: () => import('.iews/Index'),
            name: "home",
            children: [
                { path: '/home', name: "home", meta: { title: '管理' }, component: () => import('.src/home/Index') },
            ]
        },
        {
        path: string,//路由路徑
        component: Component, // 當(dāng)前路由匹配時(shí)顯示的路由組件
        name: string, // 命名路由
        redirect: string | Location | Function, // 路由重定向
        props: boolean | Object | Function,  //路由傳參
        alias: string | Array<string>, // 路由別名
        children: Array<RouteConfig>, // 嵌套路由
        beforeEnter: (to: Route, from: Route, next: Function) => void, //路由守衛(wèi)
        caseSensitive: boolean, // 匹配規(guī)則是否大小寫敏感?(默認(rèn)值:false)
      }
        }
    ]
})

props配置(最佳方案)

{ // 二級(jí)路由
    path: 'message',
    component: Message,
    children: [
        { // 三級(jí)路由
            name: 'detail',
            path: 'details/:id/:title/:desc', // 配置占位符
            component: Details,
            props(route){ // router每次調(diào)的時(shí)候會(huì)把 $route 傳進(jìn)來(lái),你想怎么取就怎么?。?
                return {
                    id: route.params.id,
                    title: route.params.title,
                    desc: route.params.desc
                }
            }
            // es6解構(gòu)賦值寫法更簡(jiǎn)單
            //props({query: {id, title, desc}}){
            //    return {id, title, desc}
            //}
        }
    ]
}

scrollBehavior

置路由跳轉(zhuǎn)時(shí),頁(yè)面滾動(dòng)條的位置

很多情況下,用戶希望查看詳情頁(yè)以后,返回列表頁(yè)剛剛瀏覽的位置,但由于列表頁(yè)組件已經(jīng)被銷毀,所以我們重新返回到列表頁(yè)后頁(yè)面會(huì)置頂,就需要重新下拉查看列表,這樣就做了很多沒(méi)有必要的操作。

new VueRouter({
    ...
    scrollBehavior() {
      return { x: 0, y: 0 };
    },
  });

也可以使用如下兩種方案(更推薦使用scrollBehavior方案)

  • 使用路由守衛(wèi)),在beforRouterLeave的路由鉤子記錄當(dāng)前頁(yè)面滾動(dòng)位置
//在頁(yè)面離開(kāi)時(shí)記錄滾動(dòng)位置
beforeRouteLeave (to, from, next) {
    this.scrollTop = document.documentElement.scrollTop || document.body.scrollTop
    next()
  },
//進(jìn)入該頁(yè)面時(shí),用之前保存的滾動(dòng)位置賦值
beforeRouteEnter (to, from, next) {
    next(vm => {
      document.body.scrollTop = vm.scrollTop
    })
  },

使用keep-alive緩存

//App.vue
<template>
  <div id="app">
    <keep-alive>
        <router-view v-if="$route.meta.keepAlive"></router-view>
    </keep-alive>
    <router-view v-if="!$route.meta.keepAlive" />
  </div>
</template>
//router.js
 routes: [
    {
      path: '/',
      name: 'List',
      component: () => import('./list.vue'),
      meta: {
        keepAlive: true // 需要緩存
      }
    },
    {
      path: '/content/:contentId',
      name: 'content',
      component: () => import('./content.vue'),
      meta: {
        keepAlive: false // 不需要緩存
      }
    },
]

到此這篇關(guān)于vueRouter常用屬性的文章就介紹到這了,更多相關(guān)vueRouter常用屬性內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue+SSM實(shí)現(xiàn)驗(yàn)證碼功能

    vue+SSM實(shí)現(xiàn)驗(yàn)證碼功能

    這篇文章主要介紹了vue+SSM實(shí)現(xiàn)驗(yàn)證碼功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-12-12
  • 關(guān)于Vue?CLI3中啟動(dòng)cli服務(wù)參數(shù)說(shuō)明

    關(guān)于Vue?CLI3中啟動(dòng)cli服務(wù)參數(shù)說(shuō)明

    這篇文章主要介紹了關(guān)于Vue?CLI3中啟動(dòng)cli服務(wù)參數(shù)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue Router路由動(dòng)態(tài)緩存組件使用詳解

    Vue Router路由動(dòng)態(tài)緩存組件使用詳解

    這篇文章主要介紹了Vue Router路由動(dòng)態(tài)緩存組件使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 詳解Vue2 無(wú)限級(jí)分類(添加,刪除,修改)

    詳解Vue2 無(wú)限級(jí)分類(添加,刪除,修改)

    本篇文章主要介紹了詳解Vue2 無(wú)限級(jí)分類(添加,刪除,修改) ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • Vue3中的defineExpose函數(shù)用法深入解析

    Vue3中的defineExpose函數(shù)用法深入解析

    這篇文章主要介紹了Vue3中的defineExpose函數(shù)用法的相關(guān)資料,defineExpose是Vue3中用于在模式下暴露組件內(nèi)部屬性和方法的輔助函數(shù),它允許父組件通過(guò)ref訪問(wèn)子組件的暴露內(nèi)容,提高組件間的交互能力并保持封裝性,需要的朋友可以參考下
    2025-01-01
  • 深入淺析Vue中的 computed 和 watch

    深入淺析Vue中的 computed 和 watch

    computed 計(jì)算屬性是通過(guò)屬性計(jì)算得來(lái)的屬性,watch屬性變化,就會(huì)觸發(fā)監(jiān)聽(tīng)的函數(shù)。下面通過(guò)本文給大家介紹Vue中的 computed 和 watch,感興趣的朋友一起看看吧
    2018-06-06
  • Vue商品控件與購(gòu)物車聯(lián)動(dòng)效果的實(shí)例代碼

    Vue商品控件與購(gòu)物車聯(lián)動(dòng)效果的實(shí)例代碼

    這篇文章主要介紹了Vue商品控件與購(gòu)物車聯(lián)動(dòng)效果的實(shí)例代碼,代碼簡(jiǎn)單易懂非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Vue下拉框回顯并默認(rèn)選中隨機(jī)問(wèn)題

    Vue下拉框回顯并默認(rèn)選中隨機(jī)問(wèn)題

    這篇文章主要介紹了Vue下拉框回顯并默認(rèn)選中隨機(jī)問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • 從eleUI的Loading知道了單例模式的用法

    從eleUI的Loading知道了單例模式的用法

    這篇文章主要介紹了從eleUI的Loading知道了單例模式的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Vue中keep-alive組件的深入理解

    Vue中keep-alive組件的深入理解

    這篇文章主要給大家介紹了關(guān)于Vue中keep-alive組件的深入理解,文中通過(guò)實(shí)例代碼結(jié)束的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08

最新評(píng)論