路由和history

官方文檔參考 https://router.vuejs.org/zh-cn/

后臺(tái)頁(yè)面是有導(dǎo)航的,通過(guò)點(diǎn)擊導(dǎo)航鏈接跳轉(zhuǎn)不同的頁(yè)面,下面我們來(lái)實(shí)現(xiàn)一下點(diǎn)擊路由的頁(yè)面跳轉(zhuǎn)

項(xiàng)目代碼里現(xiàn)在有兩個(gè)組件,一個(gè)是默認(rèn)創(chuàng)建的HelloWorld,另一個(gè)是上一節(jié)我們定義的MyHelloWorld,我們先讓它們可以根據(jù)url的變化顯示對(duì)應(yīng)的組件

修改src/router/index.js 的代碼

export default new Router({
  routes: [
    {
      path: '/',
      name: 'MyHelloWorld',
      component: MyHelloWorld
    },
    {
      path: '/hello',
      name: 'HelloWorld',
      component: HelloWorld
    }
  ]
})

別忘了去掉頂部引入HelloWorld 組件的注釋

現(xiàn)在我們分別訪(fǎng)問(wèn)已經(jīng)可以看到頁(yè)面的變化了

http://localhost:8080/#/

http://localhost:8080/#/hello

可以看出只要我們配置了routes里path對(duì)應(yīng)的組件,url路由訪(fǎng)問(wèn)的頁(yè)面就會(huì)解析的相應(yīng)的組件上

下面我們?cè)诮M件里增加鏈接來(lái)實(shí)現(xiàn)在頁(yè)面中點(diǎn)擊跳轉(zhuǎn)

先修改MyHelloWorld使用 router-link to 來(lái)跳轉(zhuǎn)

<router-link to="/hello">goto hello</router-link>

完整的代碼

const MyHelloWorld = {
  template: '<div><my-title title="我是標(biāo)題">我是變的<br>我也是<hr>我還是</my-title><router-link to="/hello">goto hello</router-link></div>'
}

再去src\components\HelloWorld.vue 里在這個(gè)組件頁(yè)面下方增加一個(gè)鏈接跳回 MyHelloWorld 這次我們換個(gè)寫(xiě)法,命名路由

<router-link :to="{ name: 'MyHelloWorld' }">goto myhelloworld</router-link>

我們盡量的使用命名路由來(lái)實(shí)現(xiàn)路由的跳轉(zhuǎn),這樣的好處是當(dāng)url變化時(shí)只要該routes里的相應(yīng)的path就可以了

看看完整的 HelloWorld.vue 代碼


## history

我們看到url的樣子是 `localhost:8080/#/hello` 或者是 `/#/` 這個(gè)樣子, 這是hash路由,具體什么是url hash去百度一下url的構(gòu)成,
通過(guò)HTML5 History 模式我們將它改成 `localhost:8080/hello` 和 `localhost:8080/` 這樣和我們傳統(tǒng)的服務(wù)端處理url一樣的

修改`src/router/index.js` 增加 `mode: 'history'` 的配置

```javascript

export default new Router({
  mode: 'history',
  routes: [
    {
      path: '/',
      name: 'MyHelloWorld',
      component: MyHelloWorld
    },
    {
      path: '/hello',
      name: 'HelloWorld',
      component: HelloWorld
    }
  ]
})

再次訪(fǎng)問(wèn)頁(yè)面看看變化

http://localhost:8080/

http://localhost:8080/hello

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,649評(píng)論 19 139
  • 原文鏈接:https://github.com/halfrost/Halfrost-Field/blob/mast...
    hament閱讀 5,825評(píng)論 1 31
  • 前言 隨著用戶(hù)的需求越來(lái)越多,對(duì)App的用戶(hù)體驗(yàn)也變的要求越來(lái)越高。為了更好的應(yīng)對(duì)各種需求,開(kāi)發(fā)人員從軟件工程的角...
    一縷殤流化隱半邊冰霜閱讀 88,167評(píng)論 214 1,098
  • 路由要解決的核心問(wèn)題是通過(guò)建立URL和頁(yè)面的對(duì)應(yīng)關(guān)系,使得不同的頁(yè)面可以用不同的URL表示。在angular中,頁(yè)...
    oWSQo閱讀 1,379評(píng)論 0 1
  • Vue-router學(xué)習(xí)指南 日記:本文按照vue-router官網(wǎng)的知識(shí)結(jié)合例子進(jìn)行分析和講解,搭建工具(vue...
    sunny519111閱讀 1,530評(píng)論 0 6

友情鏈接更多精彩內(nèi)容