色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

vue router history和

傅智翔2年前8瀏覽0評論

Vue Router是Vue.js官方的路由管理器,它和核心的Vue.js庫力求使得構建單頁應用變得更加容易。就像其他路由庫一樣,Vue Router允許開發者用組件(component)定義路由(route),然后告訴Router渲染哪個組件來匹配各個路由。Vue Router允許開發者使用HTML5 History模式或Hash模式(默認模式)來處理客戶端路由請求。

Vue Router History模式使用HTML5 history API來仿真一個完整的URL。當路由切換時,URL也隨之改變,而不是像Hash模式一樣,URL只是一個簡單的#字符串。History模式避免了使用#hashbangs(#!)的混亂,URL看起來更加干凈;但它也有一些缺點,其中一個最主要的問題是需要服務器的支持,以便于把URL合理地映射到文件結構上。

const router = new VueRouter({
mode: 'history',
routes: [...]
})

上面的代碼演示了使用Vue Router History模式的基本設置。路由器的mode屬性被設置為"history",表明Vue Router將使用history API模式。當然,還需要可以訪問所有路由的服務器支持。Vue Router的history模式使用同樣的機制來切換路由,但是它自動處理了URL,并在瀏覽歷史中增加新的記錄。

在history模式下,Vue Router不再像Hash模式那樣使用hashbang的hash模式。不過,這種模式需要更多的服務器和客戶端設置工作。為了使得history模式可以在Web托管服務上正常工作,一個catch-all的服務器等價path必須指向index.html。當客戶端路由初始化時,服務器將應該返回相應的JavaScript,這樣客戶端的JavaScript不需要額外的網絡請求,而所有的URL訪問可以被響應到index.html。下面的代碼演示了基本的服務器設置,用于將所有從Vue Router路由的請求轉發到index.html上。

const express = require('express')
const path = require('path')
const serveStatic = require('serve-static')
const app = express()
app.get('/', function (req, res) {
res.sendFile(path.join(__dirname, 'index.html'))
})
// Catch all routes and redirect to the index file
app.get('*', function (req, res) {
res.sendFile(path.join(__dirname, 'index.html'))
})
var port = process.env.PORT || 5000
app.listen(port)
console.log('server started '+ port)

上面的代碼是服務器的常見setup。首先,在根路徑上配置一個靜態文件托管器,以加載index.html,并指定服務器的Catch All路由指向index.html文件。這樣的配置使得所有路由請求都能正確加載到Vue應用程序。這個服務器是具有響應性的,也就是說Vue Router History模式可以正常運行。

總的來說,雖然Vue Router History模式比Hash模式更加舒服,帶來了更好的URL表現和用戶體驗,但它需要更多的服務器和客戶端設置才能實現。Vue Router使用History模式和Hash模式進行客戶端路由請求處理,還需要加入額外的邏輯和服務器處理以保證正確性。