Vue Router 是 Vue.js 可以和之間的一個官方插件。它集成了 Vue.js 核心庫和 Vue.js 的生態系統。Vue Router 非常靈活并具有很多的特點,例如路由的組織、內置的導航守衛、動態路由匹配、基于狀態的路由和命名視圖等等。另外,它使用的是 HTML5 的 history API,所以它們的路由是保持在瀏覽器的 URL 中的。
const router = new VueRouter({ mode: 'history', routes: [ { path: '/', component: Home }, { path: '/about', component: About }, { path: '/contact', component: Contact } ] })
在這個示例中,我們創建了一個新的 VueRouter 實例,并且定義了三個路由,分別是“/”、“/about”和“/contact”。Vue Router 默認使用 hash 模式,就是 URL 中包含一個 #。如果你不喜歡這個 #,你可以使用路由的 HTML5 history 模式。
Apache 服務器配置 history 模式的路由時,你需要將所有的請求都定向到 index.html 文件。下面是一個 Apache 的 RewriteRule 示例:
RewriteEngine On RewriteBase /path/to/vue-js-app/ RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /path/to/vue-js-app/index.html [L]
在這個示例中,我們首先啟用了 mod_rewrite 模塊,然后設置了基礎重寫路徑。接著,我們過濾掉了所有以 index.html 結尾的請求,因為我們不需要對這些請求做任何操作。然后,我們判斷如果請求的文件或目錄不存在,就重寫所有的請求到 index.html 文件。
總結一下,在使用 Vue.js 的時候如果你使用了 History 模式的路由,你需要在服務器上配置一個 RewriteRule,以便將所有的請求都重寫到 index.html 文件,否則你的應用將無法正確地工作!