最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue3實(shí)戰(zhàn)學(xué)習(xí)配置使用vue?router路由步驟示例

 更新時間:2022年06月30日 10:52:45   作者:天問  
這篇文章主要為大家介紹了Vue3實(shí)戰(zhàn)學(xué)習(xí)配置使用vue?router路由步驟示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

隨著Vue版本的升級,Vue 2.x項(xiàng)目和Vue 3.x項(xiàng)目在使用vue-router上有些區(qū)別,本文就簡單介紹下vue-router在Vue3中的配置和使用。

一、目錄結(jié)構(gòu)

demo/
    package.json
    vite.config.js
    index.html
    public/
    src/
        api/
        assets/
        common/
        components/
        store/
        views/
            home.vue
            list.vue
        router/
            index.js
        App.vue
        main.js            

二、版本依賴

vite: ^2.0.0
vue: ^3.2.8
vue-router: ^4.0.1

三、配置路由

  • 3-1.配置src/router/index.js路由文件
// src/router/index.js
import {createRouter, createWebHistory, createWebHashHistory} from 'vue-router'
import { defineAsyncComponent } from 'vue'
const router = createRouter({ 
  // history: createWebHashHistory(),  // hash 模式
  history: createWebHistory(),  // history 模式
  routes: [
    {
      path: '/',
      name: 'home',
      component: defineAsyncComponent(() => import(`../views/home.vue`)),
      meta: {
        title: '首頁',
      },
    },
    {
      path: '/list',
      name: 'list',
      component: defineAsyncComponent(() => import(`../views/list.vue`)),
      meta: {
        title: '列表頁',
      },
    },
    {
      path: '/*',
      redirect: '/',
    },
  ]
})
// 全局路由守衛(wèi)
router.beforeEach((to, from, next)=>{
  // console.log(to, from)
  if (to.meta.title) {
    document.title = `${to.meta.title}`;
  }
  next()
})
router.afterEach((to, from)=>{
  // console.log(to, from)
  console.log('afterEach')
})
export default router

說明:

  • 路由模式:
  • history模式對應(yīng)createWebHistory()方法
  • hash模式對應(yīng)createWebHashHistory()方法
  • 路由懶加載:在vite+Vue3項(xiàng)目中使用import()會有報錯,所以使用vue提供的一個方法defineAsyncComponent,詳見另一篇:vue3 + vite實(shí)現(xiàn)異步組件和路由懶加載
  • 3-2.在src/main.js入口文件中注冊使用路由
// src/main.js
import { createApp } from 'vue'
import router from './router'
import store from './store'
import App from './App.vue'
// ...
const app = createApp(App)
app.use(router).use(store);
app.mount('#app')
  • 3-3.在src/App.vue文件中使用<router-view/>
// src/App.vue
<template>
  <router-view/>
</template>

四、使用路由

  • 4-1.在Option API中使用和Vue 2.x中使用沒有差別。如下:
<template>
  <div></div>
</template>
<script>
  export default {
    data() {
      return {}
    },
    mounted() {
      // 路由跳轉(zhuǎn) && 設(shè)置參數(shù)
      this.$router.push({
        path: '/list',
        query: {
          id: 123,
        },
      })
      // 獲取參數(shù)
      let { id } = this.$route.query
    },
  }
</script>
  • 4-2.在Composition API中不能再直接訪問 this.$router 或 this.$route,所以要使用 useRouter 和 useRoute 函數(shù)。
<template>
  <div></div>
</template>
<script>
  import { ref } from 'vue'
  import { useRouter, useRoute, onBeforeRouteLeave, onBeforeRouteUpdate } from 'vue-router'
  import ajax from "./ajax";
  export default {
    setup () {
      const router = useRouter()
      const route = useRoute()
      // 路由跳轉(zhuǎn) && 設(shè)置參數(shù)
      router.push({
        path: '/list',
        query: {
          id: 123,
        },
      })
      // 獲取參數(shù)
      let { id } = route.query
      // 局部路由守衛(wèi)
      onBeforeRouteLeave((to, from) => {
        const answer = window.confirm(
          '是否要離開本頁面?'
        )
        // 取消導(dǎo)航并停留在同一頁面上
        if (!answer) return false
      })
      const userData = ref()
      onBeforeRouteUpdate(async (to, from) => {
        //僅當(dāng) id 更改時才獲取用戶,例如僅 query 或 hash 值已更改
        if (to.params.id !== from.params.id) {
          userData.value = await ajax(to.params.id)
        }
      })
    },
  }
</script>

以上就是Vue3實(shí)戰(zhàn)學(xué)習(xí)配置使用vue router路由步驟示例的詳細(xì)內(nèi)容,更多關(guān)于Vue3配置vue router路由的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • vue多環(huán)境配置之 .env配置文件詳解

    vue多環(huán)境配置之 .env配置文件詳解

    .env文件是vue運(yùn)行項(xiàng)目時的環(huán)境配置文件,這篇文章主要介紹了vue多環(huán)境配置之 .env配置文件,需要的朋友可以參考下
    2023-03-03
  • vue修改打包配置如何實(shí)現(xiàn)代碼打包后的自定義命名

    vue修改打包配置如何實(shí)現(xiàn)代碼打包后的自定義命名

    這篇文章主要介紹了vue修改打包配置如何實(shí)現(xiàn)代碼打包后的自定義命名,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Axios學(xué)習(xí)筆記之使用方法教程

    Axios學(xué)習(xí)筆記之使用方法教程

    axios是用來做數(shù)據(jù)交互的插件,最近正在學(xué)習(xí)axios,所以想著整理成筆記方便大家和自己參考學(xué)習(xí),下面這篇文章主要跟大家介紹了關(guān)于Axios使用方法的相關(guān)資料,需要的朋友們下面來一起看看吧。
    2017-07-07
  • Vue 路由 過渡動效 數(shù)據(jù)獲取方法

    Vue 路由 過渡動效 數(shù)據(jù)獲取方法

    這篇文章主要介紹了Vue 路由 過渡動效 數(shù)據(jù)獲取方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07
  • vue中的加密方式總結(jié)

    vue中的加密方式總結(jié)

    這篇文章主要為大家詳細(xì)介紹了vue中常見的加密方式實(shí)現(xiàn),例如js-base64、crypto-js、jsencrypt、bcryptjs,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考一下
    2023-11-11
  • vue中watch和computed的區(qū)別詳解

    vue中watch和computed的區(qū)別詳解

    這篇文章主要給大家介紹了關(guān)于vue中watch和computed區(qū)別的相關(guān)資料,computed和watch都是vue框架中的用于監(jiān)聽數(shù)據(jù)變化的屬性,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • element UI 中的 el-tree 實(shí)現(xiàn) checkbox 單選框及 bus 傳遞參數(shù)功能

    element UI 中的 el-tree 實(shí)現(xiàn) checkbox&n

    在日常項(xiàng)目開發(fā)中,會經(jīng)常遇到,樹形結(jié)構(gòu)的查詢方式,為了快速方便開發(fā),常常會使用到快捷的ui組件去快速搭樹形結(jié)構(gòu),這里我用的是 element ui 中的 el-tree,對element UI 中的 el-tree 實(shí)現(xiàn) checkbox 單選框及 bus 傳遞參數(shù)的方法感興趣的朋友跟隨小編一起看看吧
    2022-09-09
  • Vue 級聯(lián)下拉框的設(shè)計與實(shí)現(xiàn)

    Vue 級聯(lián)下拉框的設(shè)計與實(shí)現(xiàn)

    在前端開發(fā)中,級聯(lián)選擇框是經(jīng)常用到的,這樣不僅可以增加用戶輸入的友好性,還能減少前后端交互的數(shù)據(jù)量。本文就介紹一下使用Vue實(shí)現(xiàn)級聯(lián)下拉框,感興趣的可以了解一下
    2021-07-07
  • vue-cli2.x項(xiàng)目優(yōu)化之引入本地靜態(tài)庫文件的方法

    vue-cli2.x項(xiàng)目優(yōu)化之引入本地靜態(tài)庫文件的方法

    這篇文章主要介紹了vue-cli2.x項(xiàng)目優(yōu)化之引入本地靜態(tài)庫文件的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • vue項(xiàng)目部署到nginx/tomcat服務(wù)器的實(shí)現(xiàn)

    vue項(xiàng)目部署到nginx/tomcat服務(wù)器的實(shí)現(xiàn)

    這篇文章主要介紹了vue項(xiàng)目部署到nginx/tomcat服務(wù)器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08

最新評論

休宁县| 乡城县| 襄樊市| 垣曲县| 孝感市| 鄂托克旗| 灌云县| 刚察县| 武平县| 镶黄旗| 沂南县| 通许县| 南溪县| 永兴县| 常德市| 本溪市| 陵川县| 邵东县| 贵德县| 兴文县| 通辽市| 昭平县| 寿光市| 南召县| 正定县| 伊春市| 开江县| 五家渠市| 罗江县| 前郭尔| 辛集市| 内黄县| 威信县| 盱眙县| 精河县| 封开县| 巴青县| 涞水县| 两当县| 崇仁县| 黑河市|