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

Vue實現(xiàn)路由跳轉(zhuǎn)和嵌套

 更新時間:2017年06月20日 11:35:33   作者:TONELESS  
本篇文章主要介紹了Vue實現(xiàn)路由跳轉(zhuǎn)和嵌套,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一、配置 Router

 用 vue-cli 創(chuàng)建的初始模板里面,并沒有 vue-router,需要通過 npm 安裝

cnpm i vue-router -D

安裝完成后,在 src 文件夾下,創(chuàng)建一個 routers.js 文件,和 main.js 平級

然后在 router.js 中引入所需的組件,創(chuàng)建 routers 對象

import Home from './components/home.vue'

const routers = [
 {
 path: '/home',
 name: 'home',
 component: Home
 },
 {
 path: '/',
 component: Home
 },
]
export default routers

在創(chuàng)建的 routers 對象中, path 配置了路由的路徑,component 配置了映射的組件

需要注意的是,export default routers 必須寫在文件底部,而且后面還需要接一空行,否則無法通過 ESlint 語法驗證

然后 main.js 也需要修改:

import Vue from 'vue'
import VueRouter from 'vue-router'
import routers from './routers'
import App from './App'

Vue.use(VueRouter)

const router = new VueRouter({
 mode: 'history',
 routes: routers
})

new Vue({
 el: '#app',
 router,
 render: h => h(App)
})

在創(chuàng)建的 router 對象中,如果不配置 mode,就會使用默認(rèn)的 hash 模式,該模式下會將路徑格式化為 #! 開頭。

添加 mode: 'history' 之后將使用 HTML5 history 模式,該模式下沒有 # 前綴,而且可以使用 pushState 和 replaceState 來管理記錄。

關(guān)于 html5 history 模式的更多內(nèi)容,可以參考官方文檔:https://router.vuejs.org/zh-cn/essentials/history-mode.html

二、嵌套路由

在這個實例中,為了加深項目層級,App.vue 只是作為一個存放組件的容器:

其中 <router-view> 是用來渲染通過路由映射過來的組件,當(dāng)路徑更改時,<router-view> 中的內(nèi)容也會發(fā)生更改

上面已經(jīng)配置了兩個路由,當(dāng)打開 http://localhost:8080 或者 http://localhost:8080/home 的時候,就會在 <router-view> 中渲染 home.vue 組件 

home.vue 是真正的父組件,first.vue、login.vue 等子組件都會渲染到 home.vue 中的 <router-view>

如此一來,就需要在一級路由中嵌套二級路由,修改 routers.js

import Home from './components/home.vue'
import First from './components/children/first.vue'
import Login from './components/children/login.vue'

const routers = [
 {
 path: '/',
 component: Home,
   children: [ 
   { 
    path: '/', 
     component: Login 
   }
  ]
 },
 {
 path: '/home',
 name: 'home',
 component: Home,
 children: [
  {
  path: '/',
  name: 'login',
  component: Login
  },
  {
  path: 'first',
  name: 'first',
  component: First
  } 
 ]
 }
]

export default routers

在配置的路由后面,添加 children,并在 children 中添加二級路由,就能實現(xiàn)路由嵌套

配置 path 的時候,以 " / " 開頭的嵌套路徑會被當(dāng)作根路徑,所以子路由的 path 不需要添加 " / "

三、使用 <router-link> 映射路由

home.vue 中引入了 header.vue 組件,其中含有導(dǎo)航菜單

當(dāng)點擊導(dǎo)航菜單的時候,會切換 home.vue 中 <router-view> 中的內(nèi)容

這種只需要跳轉(zhuǎn)頁面,不需要添加驗證方法的情況,可以使用 <router-link> 來實現(xiàn)導(dǎo)航的功能:

在編譯之后,<router-link> 會被渲染為 <a> 標(biāo)簽, to 會被渲染為 href,當(dāng) <router-link> 被點擊的時候,url 會發(fā)生相應(yīng)的改變

如果使用 v-bind 指令,還可以在 to 后面接變量,配合 v-for 指令可以渲染導(dǎo)航菜單

 如果對于所有 ID 各不相同的用戶,都要使用 home 組件來渲染,可以在 routers.js 中添加動態(tài)參數(shù):

{ 
 path: '/home/:id',
 component: Home
}

這樣 "/home/user01"、"/home/user02"、"/home/user03" 等路由,都會映射到 Home 組件

然后還可以使用 $route.params.id 來獲取到對應(yīng)的 id

四、編程式導(dǎo)航

實際情況下,有很多按鈕在執(zhí)行跳轉(zhuǎn)之前,還會執(zhí)行一系列方法,這時可以使用 this.$router.push(location) 來修改 url,完成跳轉(zhuǎn)

push 后面可以是對象,也可以是字符串:

// 字符串
this.$router.push('/home/first')

// 對象
this.$router.push({ path: '/home/first' })

// 命名的路由
this.$router.push({ name: 'home', params: { userId: wise }})

五、前車之鑒

在學(xué)習(xí)的過程中,遇到一個困擾許久的問題,大概是從 first 組件跳轉(zhuǎn)回 login 之后,無法再跳轉(zhuǎn)回去。但是 url 已經(jīng)被修改,刷新頁面也能正常顯示。

這是因為我在 first.vue 組件中的 data 里面沒有寫 return

  

在 vue 組件中,data 必須寫為函數(shù),且需要用 return 來返回參數(shù)。但是當(dāng) data 為空時,即使不寫 return 也不會報錯,所以導(dǎo)致了上面的問題。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue3定義組件的四種方式

    Vue3定義組件的四種方式

    Vue 作為一款流行的前端框架,提供了多種方式來定義組件,包括單文件組件、渲染函數(shù)、、JSX/TSX 以及函數(shù)式組件、不同的方式適用于不同的場景,本文將對這四種方式進行詳細(xì)對比,幫助你找到最適合自己項目的方案,需要的朋友可以參考下
    2025-03-03
  • 從0搭建Vue3組件庫之如何使用Vite打包組件庫

    從0搭建Vue3組件庫之如何使用Vite打包組件庫

    這篇文章主要介紹了從0搭建Vue3組件庫之如何使用Vite打包組件庫,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • 詳解Vue如何在頁面刷新時進行重定向

    詳解Vue如何在頁面刷新時進行重定向

    這篇文章主要為大家詳細(xì)介紹了Vue如何在頁面刷新時進行重定向,文中的示例代碼簡潔易懂,具有一定的借鑒價值,有需要的小伙伴可以參考一下
    2025-01-01
  • Vue設(shè)置別名聯(lián)想路徑即@/生效的方法

    Vue設(shè)置別名聯(lián)想路徑即@/生效的方法

    這篇文章主要給大家介紹了Vue設(shè)置別名聯(lián)想路徑即@/生效的方法,文中有詳細(xì)的代碼示例和圖文講解,具有一定的參考價值,需要的朋友可以參考下
    2023-11-11
  • element-plus 如何設(shè)置 el-date-picker 彈出框位置

    element-plus 如何設(shè)置 el-date-picker 彈出框位置

    el-date-picker 組件會自動根據(jù)空間范圍進行選擇比較好的彈出位置,但特定情況下,它自動計算出的彈出位置并不符合我們的實際需求,故需要我們手動設(shè)置,這篇文章主要介紹了element-plus 如何設(shè)置 el-date-picker 彈出框位置,需要的朋友可以參考下
    2024-07-07
  • 深入了解Vue.js 混入(mixins)

    深入了解Vue.js 混入(mixins)

    這篇文章主要介紹了Vue.js 混入的相關(guān)資料,文中講解非常細(xì)致,示例代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 新版vue-cli模板下本地開發(fā)環(huán)境使用node服務(wù)器跨域的方法

    新版vue-cli模板下本地開發(fā)環(huán)境使用node服務(wù)器跨域的方法

    這篇文章主要介紹了新版vue-cli模板下本地開發(fā)環(huán)境使用node服務(wù)器跨域的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • VUE element-ui 寫個復(fù)用Table組件的示例代碼

    VUE element-ui 寫個復(fù)用Table組件的示例代碼

    本篇文章主要介紹了VUE element-ui 寫個復(fù)用Table組件的示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 有關(guān)vue 開發(fā)釘釘 H5 微應(yīng)用 dd.ready() 不執(zhí)行問題及快速解決方案

    有關(guān)vue 開發(fā)釘釘 H5 微應(yīng)用 dd.ready() 不執(zhí)行問題及快速解決方案

    這篇文章主要介紹了有關(guān)vue 開發(fā)的釘釘 H5 微應(yīng)用 dd.ready() 不執(zhí)行問題及快速解決方案,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • 解決vux 中popup 組件Mask 遮罩在最上層的問題

    解決vux 中popup 組件Mask 遮罩在最上層的問題

    這篇文章主要介紹了解決vux 中popup 組件Mask 遮罩在最上層的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11

最新評論

垦利县| 三穗县| 沙田区| 常州市| 朝阳县| 稻城县| 吉水县| 扶余县| 威信县| 班玛县| 乐安县| 宁陕县| 满城县| 平远县| 瓦房店市| 凤翔县| 菏泽市| 许昌市| 淅川县| 松阳县| 黄平县| 淮滨县| 疏勒县| 历史| 清远市| 始兴县| 聂拉木县| 焦作市| 江西省| 繁昌县| 岚皋县| 子长县| 喀喇| 措美县| 邛崃市| 桃源县| 济宁市| 永泰县| 博客| 长汀县| 晋中市|