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

Vue Router應(yīng)用方法詳解

 更新時(shí)間:2022年09月20日 11:23:01   作者:??煙花易冷???  
在看這篇文章的幾點(diǎn)要求:需要你先知道Vue-Router是個(gè)什么東西,用來(lái)解決什么問(wèn)題,以及它的基本使用。如果你還不懂的話,建議上官網(wǎng)了解下Vue-Router的基本使用后再回來(lái)看這篇文章

服務(wù)端路由

服務(wù)端路由時(shí)指的是服務(wù)器根據(jù)用戶訪問(wèn)的 URL 路徑返回不同的響應(yīng)結(jié)果。

在傳統(tǒng)的服務(wù)端渲染的 web 應(yīng)用中點(diǎn)擊一個(gè)鏈接時(shí),瀏覽器會(huì)從服務(wù)端獲得全新的 HTML頁(yè)面,然后重新加載整個(gè)頁(yè)面。

然而,在單頁(yè)面應(yīng)用中,客戶端的 JavaScript 可以攔截頁(yè)面的跳轉(zhuǎn)請(qǐng)求,動(dòng)態(tài)獲取新的數(shù)據(jù),無(wú)需重新加載的情況下更新當(dāng)前頁(yè)面。

這樣通常可以帶來(lái)更順滑的用戶體驗(yàn),尤其是在更偏向“應(yīng)用”的場(chǎng)景下,因?yàn)檫@類(lèi)場(chǎng)景下用戶通常會(huì)在很長(zhǎng)的一段時(shí)間中做出多次交互。

在這類(lèi)單頁(yè)應(yīng)用中,“路由”是在客戶端執(zhí)行的。一個(gè)客戶端路由器的職責(zé)就是利用諸如 History API 或是 hashchange 事件這樣的瀏覽器 API 來(lái)管理應(yīng)用當(dāng)前應(yīng)該渲染的視圖。

路由的應(yīng)用場(chǎng)景

單頁(yè)面應(yīng)用(SPA應(yīng)用):

  1. 顧名思義導(dǎo)航欄不變,內(nèi)容欄改變的應(yīng)用。
  2. 內(nèi)容欄根據(jù)導(dǎo)航欄的選擇變化的同時(shí),頁(yè)面不會(huì)跳轉(zhuǎn),也就是說(shuō)不會(huì)產(chǎn)生新的請(qǐng)求。
  3. js攔截頁(yè)面的跳轉(zhuǎn)請(qǐng)求,動(dòng)態(tài)的獲取新的數(shù)據(jù),路徑也會(huì)隨之變化。
  4. 數(shù)據(jù)需要通過(guò)ajax的請(qǐng)求獲取。

路由

  1. 路由就是多個(gè)key-value的對(duì)應(yīng)關(guān)系。
  2. 每一個(gè)路由都需要路由器的支持。

監(jiān)聽(tīng)瀏覽器 hashchange 事件實(shí)現(xiàn)路由

如果你只需要一個(gè)簡(jiǎn)單的頁(yè)面路由,而不想為此引入一整個(gè)路由庫(kù),你可以通過(guò)動(dòng)態(tài)組件的方式,監(jiān)聽(tīng)瀏覽器 hashchange 事件或使用 History API 來(lái)更新當(dāng)前組件。

<script>
import About from "./components/About.vue";
import Home from "./components/Home.vue";
import NotFound from "./components/Not Found.vue";
const routes = {
  //路由默認(rèn)跳轉(zhuǎn)到Home組件
  '/': Home,
  '/about': About
}
export default {
  data() {
    return {
      currentPath: window.location.hash
    }
  },
  computed: {
    //計(jì)算屬性的方法,響應(yīng)式的,緩存
    currentView() {
      //過(guò)濾#,匹配路由
      return routes[this.currentPath.slice(1) || '/' ] || NotFound
    }
  },
  mounted() {
    window.addEventListener('hashchange', () => {
      //只要window變化了就,把當(dāng)前的路徑給App組件下的屬性this.currentPath
      this.currentPath = window.location.hash
    })
  }
}
</script>
<template>
  <a href="#/" rel="external nofollow" >Home</a> |
  <a href="#/about" rel="external nofollow" >About</a> |
  <a href="#/non-existent-path" rel="external nofollow" >Broken Link</a>
  <br>
  <component :is="currentView" />
</template>

使用Vue Router+Vue2實(shí)現(xiàn)路由

用 Vue + Vue Router 創(chuàng)建單頁(yè)應(yīng)用非常簡(jiǎn)單:通過(guò) Vue.js,我們已經(jīng)用組件組成了我們的應(yīng)用。當(dāng)加入 Vue Router 時(shí),我們需要做的就是將我們的組件映射到路由上,讓 Vue Router 知道在哪里渲染它們。

1.安裝路由

npm i vue-router@3

注意:

  1. vue3對(duì)應(yīng)的vue-router版本是4
  2. vue2對(duì)應(yīng)的vue-router版本是3
  3. 我這里是vue2

2.導(dǎo)入VueRouter插件(main.js)

import Vue from 'vue'
import App from './App.vue'
import VueRouter from "vue-router"
import './assets/main.css'
//關(guān)閉vue的生產(chǎn)提示
Vue.config.productionTip = false
//使用路由器插件
Vue.use(VueRouter)
new Vue({
  render: (h) => h(App),
}).$mount('#app')

3.編寫(xiě)創(chuàng)建路由器router(并暴露)的js文件(router/index.js)

import VueRouter from "vue-router";
import Home from "../components/Home";
import About from "../components/About";
import NotFound from "../components/Not Found";
//創(chuàng)建路由器并暴露
export default new VueRouter({
    //多個(gè)路由
    routes:[
        {
            path:'/about',
            component:About
        },
        {
            path:'/Home',
            component:Home
        }
    ]
})

4.引入router(main.js)

import router from "./router";
new Vue({
  render: (h) => h(App),
  router:router
}).$mount('#app')

5. 測(cè)試

<template>
<div>
  <h1>Router Demo</h1>
  <router-link to="/home">Home</router-link>||
  <router-link to="/about">About</router-link>
  <router-view></router-view>
</div>
</template>

Vue3 + Vue-router

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

相關(guān)文章

  • vue實(shí)現(xiàn)簡(jiǎn)單的登錄彈出框

    vue實(shí)現(xiàn)簡(jiǎn)單的登錄彈出框

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)簡(jiǎn)單的登錄彈出框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • 解讀Vue3中keep-alive和動(dòng)態(tài)組件的實(shí)現(xiàn)邏輯

    解讀Vue3中keep-alive和動(dòng)態(tài)組件的實(shí)現(xiàn)邏輯

    這篇文章主要介紹了Vue3中keep-alive和動(dòng)態(tài)組件的實(shí)現(xiàn)邏輯,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • element-table如何實(shí)現(xiàn)自定義表格排序

    element-table如何實(shí)現(xiàn)自定義表格排序

    這篇文章主要介紹了element-table如何實(shí)現(xiàn)自定義表格排序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue-router 中router-view不能渲染的解決方法

    vue-router 中router-view不能渲染的解決方法

    本篇文章主要結(jié)合了vue-router 中router-view不能渲染的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Vue編程三部曲之將template編譯成AST示例詳解

    Vue編程三部曲之將template編譯成AST示例詳解

    這篇文章主要為大家介紹了Vue編程三部曲之將template編譯成AST示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Vue使用Vuex一步步封裝并使用store全過(guò)程

    Vue使用Vuex一步步封裝并使用store全過(guò)程

    這篇文章主要介紹了Vue使用Vuex一步步封裝并使用store全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue,uniapp--js禁止頁(yè)面滾動(dòng),取消滾動(dòng)方式

    vue,uniapp--js禁止頁(yè)面滾動(dòng),取消滾動(dòng)方式

    這篇文章主要介紹了vue,uniapp--js禁止頁(yè)面滾動(dòng),取消滾動(dòng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 一文搞懂Vue3中watchEffect偵聽(tīng)器的使用

    一文搞懂Vue3中watchEffect偵聽(tīng)器的使用

    今天我們來(lái)學(xué)習(xí)一下watch偵聽(tīng)器的好兄弟?watchEffect?偵聽(tīng)器。這個(gè)相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,用的不是很多,當(dāng)然了,根據(jù)自己的項(xiàng)目情況自行決定使用,希望對(duì)大家有所幫助
    2022-07-07
  • Vue路由跳轉(zhuǎn)步驟詳解

    Vue路由跳轉(zhuǎn)步驟詳解

    這篇文章主要介紹了?Vue路由跳轉(zhuǎn)步驟詳解,主要介紹當(dāng)訪問(wèn)API成功后跳轉(zhuǎn)到新的Vue頁(yè)面怎么處理,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • vue3中如何使用dayjs

    vue3中如何使用dayjs

    這篇文章主要介紹了vue3中如何使用dayjs問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03

最新評(píng)論

白玉县| 宁城县| 四会市| 博野县| 云和县| 泽普县| 尉犁县| 海城市| 于都县| 闵行区| 萝北县| 齐齐哈尔市| 澄江县| 开化县| 黎川县| 大连市| 乐安县| 陆川县| 栖霞市| 安阳市| 台山市| 长海县| 巨鹿县| 临泉县| 环江| 深泽县| 长岛县| 易门县| 高平市| 澄江县| 晋城| 大安市| 屏山县| 丰都县| 清丰县| 息烽县| 栾川县| 锦州市| 胶南市| 玛曲县| 哈密市|