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

vue-router如何實(shí)現(xiàn)history模式配置

 更新時(shí)間:2022年06月24日 10:05:45   作者:注釋科長(zhǎng)  
這篇文章主要介紹了vue-router如何實(shí)現(xiàn)history模式配置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue-router history模式配置

一:概述

vue-router可以設(shè)置兩種模式:hash和history

const router = new VueRouter({ 
  mode: "hash", 
  // mode: "history", 
  routes 
});

如果使用hash模式,一般無(wú)需特殊配置;

但如果要使用history模式,則前端和服務(wù)端要做一定的設(shè)置;

使用history模式通常本地調(diào)試沒有什么問題,但是一旦發(fā)布到測(cè)試或生產(chǎn)環(huán)境,則會(huì)出現(xiàn)頁(yè)面白屏或者刷新頁(yè)面白屏的現(xiàn)象,這種問題的出現(xiàn)是因?yàn)榍岸撕头?wù)端沒有做相應(yīng)的配置。

二、實(shí)現(xiàn)history模式需要怎樣配置

2.1、前端配置

首先要設(shè)置路由的mode和base兩個(gè)值,如下:

const routes = [...] 
const router = new VueRouter({
  mode: "history",
  base: process.env.BASE_URL,  // 如果使用history模式,必須設(shè)置base參數(shù)
  routes
});
 
export default router;

其次要設(shè)置vue.config.js里的publicPath,如下:

module.exports = {
  // publicPath默認(rèn)值是'/',即你的應(yīng)用是被部署在一個(gè)域名的根路徑上
  // 設(shè)置為'./',可以避免打包后的靜態(tài)頁(yè)面空白
  // 當(dāng)在非本地環(huán)境時(shí),這里以項(xiàng)目test-daily為例,即打包后的h5項(xiàng)目部署服務(wù)器的test-daily目錄下
  // 那么這里就要把publicPath設(shè)置為/test-daily/,表示所有的靜態(tài)資源都在/test-daily/里
  // 打包部署后,會(huì)發(fā)現(xiàn)index.html引用的靜態(tài)資源都添加了路徑/test-daily/
  publicPath: process.env.NODE_ENV == 'development' ? './' : '/test-daily/',  
  ...... 
}

如下圖所示:

至此,前端的配置工作就結(jié)束了。

2.2、服務(wù)端配置(這里以nginx為例)

官網(wǎng)其實(shí)有介紹,只是不太詳細(xì),這里直接上代碼,如下:

location /test-daily表示項(xiàng)目部署在了 /test-daily目錄下,這里要跟vue.config.js里的publicpath的值保持一致。

之所以刷新頁(yè)面白屏,其實(shí)是因?yàn)槁酚少Y源不存在,以本項(xiàng)目為例(home為首頁(yè)路由的參數(shù)):

https://test.xxx.yy/test-daily/home

當(dāng)訪問上述路由時(shí),其實(shí)根本就不存在相應(yīng)的資源,當(dāng)然會(huì)404了,為了避免這種情況的發(fā)生,可以讓所有的路由都指向index.html就可以解決問題了

在nginx上進(jìn)行設(shè)置: try_files $uri $uri/ /test-daily/index.html        即可。

至此,也就實(shí)現(xiàn)了所有的history模式的配置。

mode:“history“的作用

在未設(shè)置mode:“history”,vue的路由默認(rèn)是hash模式,地址欄中顯示如下:

hash:在地址欄中顯示"#"符號(hào)(這里的hash不是密碼學(xué)中的散列運(yùn)算)。例如:localhost:8080/#/index,hash的值為#/index。它的特點(diǎn)在于:hash雖然出現(xiàn)在路徑中,但是不會(huì)被包括在HTTP請(qǐng)求中,對(duì)后端完全沒有影響,因此改變hash不會(huì)重新加載頁(yè)面。

history利用了H5 history Interface中新增的pushState()和replaceState()方法。(需要特定瀏覽器支持)這兩個(gè)方法應(yīng)用于瀏覽器的歷史記錄棧,在當(dāng)前已有的back、forward、go的基礎(chǔ)上,它們提供了對(duì)歷史記錄進(jìn)行修改的功能。只是當(dāng)它們執(zhí)行修改時(shí),雖然改變了當(dāng)前的Url,但是瀏覽器不會(huì)立即向后端發(fā)送請(qǐng)求。

綜上:hash模式和history模式都屬于瀏覽器自身的特性,Vue-Router只是利用了這兩個(gè)特性(通過調(diào)用瀏覽器提供的接口)來(lái)實(shí)現(xiàn)前端路由。

為了使路徑更加直觀及美觀,就需要使用history模式。只需在router文件夾下的index.js中加入 mode:“history”

關(guān)于單頁(yè)面交互跳轉(zhuǎn),只需要使用router提供的方法即可。

在main.js文件配置中將router綁定到全局

Vue.prototype.router = router;

跳轉(zhuǎn)頁(yè)面如下:

<button @click="toArticle()">跳轉(zhuǎn)文章頁(yè)面</button>
methods:{
    toArticle() {
        this.$router.push('/article')
    }
  }

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • vue + element-ui實(shí)現(xiàn)簡(jiǎn)潔的導(dǎo)入導(dǎo)出功能

    vue + element-ui實(shí)現(xiàn)簡(jiǎn)潔的導(dǎo)入導(dǎo)出功能

    Element-UI是餓了么前端團(tuán)隊(duì)推出的一款基于Vue.js 2.0 的桌面端UI框架,手機(jī)端有對(duì)應(yīng)框架是 Mint UI,下面這篇文章主要給大家介紹了關(guān)于利用vue + element-ui如何實(shí)現(xiàn)簡(jiǎn)潔的導(dǎo)入導(dǎo)出功能的相關(guān)資料,需要的朋友可以參考下。
    2017-12-12
  • vue 監(jiān)聽窗口變化對(duì)頁(yè)面部分元素重新渲染操作

    vue 監(jiān)聽窗口變化對(duì)頁(yè)面部分元素重新渲染操作

    這篇文章主要介紹了vue 監(jiān)聽窗口變化對(duì)頁(yè)面部分元素重新渲染操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-07-07
  • vue中的v-show,v-if,v-bind的使用示例詳解

    vue中的v-show,v-if,v-bind的使用示例詳解

    這篇文章主要介紹了vue中的v-show,v-if,v-bind的使用,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Vue build過程取消console debugger控制臺(tái)信息輸出方法詳解

    Vue build過程取消console debugger控制臺(tái)信息輸出方法詳解

    這篇文章主要為大家介紹了Vue build過程取消console debugger控制臺(tái)信息輸出方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • vue項(xiàng)目中字符串換行顯示方式(返回的數(shù)據(jù)包含‘\r\n’字符)

    vue項(xiàng)目中字符串換行顯示方式(返回的數(shù)據(jù)包含‘\r\n’字符)

    這篇文章主要介紹了vue項(xiàng)目中字符串換行顯示方式(返回的數(shù)據(jù)包含‘\r\n’字符),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Vuex數(shù)據(jù)持久化實(shí)現(xiàn)的思路與代碼

    Vuex數(shù)據(jù)持久化實(shí)現(xiàn)的思路與代碼

    Vuex數(shù)據(jù)持久化可以很好的解決全局狀態(tài)管理,當(dāng)刷新后數(shù)據(jù)會(huì)消失,這是我們不愿意看到的。這篇文章主要給大家介紹了關(guān)于Vuex數(shù)據(jù)持久化實(shí)現(xiàn)的思路與代碼,需要的朋友可以參考下
    2021-05-05
  • vue3如何使用element-plus的dialog

    vue3如何使用element-plus的dialog

    這篇文章主要介紹了vue3優(yōu)雅的使用element-plus的dialog,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • vue 解決provide和inject響應(yīng)的問題

    vue 解決provide和inject響應(yīng)的問題

    這篇文章主要介紹了vue 解決provide和inject響應(yīng)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-11-11
  • hansontable在vue中的基本使用教程

    hansontable在vue中的基本使用教程

    handsontable是目前在前端界最接近excel的插件,可以執(zhí)行編輯,復(fù)制粘貼,插入刪除行列,排序等復(fù)雜操作,這篇文章主要介紹了hansontable在vue中的基本使用,需要的朋友可以參考下
    2022-10-10
  • Vue項(xiàng)目打包并發(fā)布的完整步驟記錄

    Vue項(xiàng)目打包并發(fā)布的完整步驟記錄

    在一般情況下,vue項(xiàng)目代碼部署發(fā)布只需將代碼打包后直接上傳到服務(wù)器即可,下面這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目打包并發(fā)布的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04

最新評(píng)論

无锡市| 土默特左旗| 广灵县| 会泽县| 沧源| 东宁县| 阳江市| 修文县| 怀仁县| 长海县| 濮阳市| 沂水县| 永兴县| 新竹市| 佛坪县| 开江县| 西昌市| 长汀县| 平阳县| 新绛县| 昭苏县| 通江县| 芦溪县| 漳州市| 苏尼特右旗| 汪清县| 通道| 雷州市| 敦化市| 乌什县| 越西县| 磴口县| 铜梁县| 五台县| 龙陵县| 岳西县| 华阴市| 通许县| 堆龙德庆县| 仁布县| 阿鲁科尔沁旗|