一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Vue3 路由 | 菜鳥教程

 wenxuefeng360 2022-08-31 發(fā)布于四川

本章節(jié)我們將為大家介紹 Vue 路由。

Vue 路由允許我們通過不同的 URL 訪問不同的內(nèi)容。

通過 Vue 可以實現(xiàn)多視圖的單頁 Web 應用(single page web application,SPA)。

Vue.js 路由需要載入 vue-router 庫

中文文檔地址:vue-router 文檔。


安裝

1、直接下載 / CDN

https:///vue-router@4

NPM

推薦使用淘寶鏡像:

npm install -g cnpm --registry=https://registry.
cnpm install vue-router@4

簡單實例

Vue.js + vue-router 可以很簡單的實現(xiàn)單頁應用。

<router-link> 是一個組件,該組件用于設置一個導航鏈接,切換不同 HTML 內(nèi)容。 to 屬性為目標地址, 即要顯示的內(nèi)容。

以下實例中我們將 vue-router 加進來,然后配置組件和路由映射,再告訴 vue-router 在哪里渲染它們。代碼如下所示:

HTML 代碼

<script src="https:///vue@3"></script> <script src="https:///vue-router@4"></script> <div id="app"> <h1>Hello App!</h1> <p> <!--使用 router-link 組件進行導航 --> <!--通過傳遞 `to` 來指定鏈接 --> <!--`<router-link>` 將呈現(xiàn)一個帶有正確 `href` 屬性的 `<a>` 標簽--> <router-link to="/">Go to Home</router-link> <router-link to="/about">Go to About</router-link> </p> <!-- 路由出口 --> <!-- 路由匹配到的組件將渲染在這里 --> <router-view></router-view> </div>

router-link

請注意,我們沒有使用常規(guī)的 a 標簽,而是使用一個自定義組件 router-link 來創(chuàng)建鏈接。這使得 Vue Router 可以在不重新加載頁面的情況下更改 URL,處理 URL 的生成以及編碼。我們將在后面看到如何從這些功能中獲益。

router-view

router-view 將顯示與 url 對應的組件。你可以把它放在任何地方,以適應你的布局。

JavaScript 代碼

// 1. 定義路由組件. // 也可以從其他文件導入 const Home = { template: '<div>Home</div>' } const About = { template: '<div>About</div>' } // 2. 定義一些路由 // 每個路由都需要映射到一個組件。 // 我們后面再討論嵌套路由。 const routes = [ { path: '/', component: Home }, { path: '/about', component: About }, ] // 3. 創(chuàng)建路由實例并傳遞 `routes` 配置 // 你可以在這里輸入更多的配置,但我們在這里 // 暫時保持簡單 const router = VueRouter.createRouter({ // 4. 內(nèi)部提供了 history 模式的實現(xiàn)。為了簡單起見,我們在這里使用 hash 模式。 history: VueRouter.createWebHashHistory(), routes, // `routes: routes` 的縮寫 }) // 5. 創(chuàng)建并掛載根實例 const app = Vue.createApp({}) //確保 _use_ 路由實例使 //整個應用支持路由。 app.use(router) app.mount('#app') // 現(xiàn)在,應用已經(jīng)啟動了!

嘗試一下 ?

點擊過的導航鏈接都會加上樣式 class ="router-link-exact-active router-link-active"。


<router-link> 相關(guān)屬性

接下來我們可以了解下更多關(guān)于 <router-link> 的屬性。

to

表示目標路由的鏈接。 當被點擊后,內(nèi)部會立刻把 to 的值傳到 router.push(),所以這個值可以是一個字符串或者是描述目標位置的對象。

<!-- 字符串 -->
<router-link to="home">Home</router-link>
<!-- 渲染結(jié)果 -->
<a href="home">Home</a>

<!-- 使用 v-bind 的 JS 表達式 -->
<router-link v-bind:to="'home'">Home</router-link>

<!-- 不寫 v-bind 也可以,就像綁定別的屬性一樣 -->
<router-link :to="'home'">Home</router-link>

<!-- 同上 -->
<router-link :to="{ path: 'home' }">Home</router-link>

<!-- 命名的路由 -->
<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>

<!-- 帶查詢參數(shù),下面的結(jié)果為 /register?plan=private -->
<router-link :to="{ path: 'register', query: { plan: 'private' }}">Register</router-link>

replace

設置 replace 屬性的話,當點擊時,會調(diào)用 router.replace() 而不是 router.push(),導航后不會留下 history 記錄。

<router-link :to="{ path: '/abc'}" replace></router-link>

append

設置 append 屬性后,則在當前 (相對) 路徑前添加其路徑。例如,我們從 /a 導航到一個相對路徑 b,如果沒有配置 append,則路徑為 /b,如果配了,則為 /a/b

<router-link :to="{ path: 'relative/path'}" append></router-link>

tag

有時候想要 <router-link> 渲染成某種標簽,例如 <li>。 于是我們使用 tag prop 類指定何種標簽,同樣它還是會監(jiān)聽點擊,觸發(fā)導航。

<router-link to="/foo" tag="li">foo</router-link>
<!-- 渲染結(jié)果 -->
<li>foo</li>

active-class

設置 鏈接激活時使用的 CSS 類名??梢酝ㄟ^以下代碼來替代。

<style>
   ._active{
      background-color : red;
   }
</style>
<p>
   <router-link v-bind:to = "{ path: '/route1'}" active-class = "_active">Router Link 1</router-link>
   <router-link v-bind:to = "{ path: '/route2'}" tag = "span">Router Link 2</router-link>
</p>

注意這里 class 使用 active-class="_active"。

exact-active-class

配置當鏈接被精確匹配的時候應該激活的 class??梢酝ㄟ^以下代碼來替代。

<p>
   <router-link v-bind:to = "{ path: '/route1'}" exact-active-class = "_active">Router Link 1</router-link>
   <router-link v-bind:to = "{ path: '/route2'}" tag = "span">Router Link 2</router-link>
</p>

event

聲明可以用來觸發(fā)導航的事件??梢允且粋€字符串或是一個包含字符串的數(shù)組。

<router-link v-bind:to = "{ path: '/route1'}" event = "mouseover">Router Link 1</router-link>

以上代碼設置了 event 為 mouseover ,及在鼠標移動到 Router Link 1 上時導航的 HTML 內(nèi)容會發(fā)生改變。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    国产精品久久三级精品| 亚洲少妇一区二区三区懂色| 麻豆视传媒短视频在线看| 草草夜色精品国产噜噜竹菊| 午夜免费精品视频在线看| 成年人视频日本大香蕉久久| 亚洲做性视频在线播放| 男人操女人下面国产剧情| 国产爆操白丝美女在线观看| 制服丝袜美腿美女一区二区| 日本视频在线观看不卡| 欧美国产日韩变态另类在线看| 国产日韩综合一区在线观看| 久久综合九色综合欧美| 日本三区不卡高清更新二区| 激情中文字幕在线观看| 狠狠做五月深爱婷婷综合| 99国产成人免费一区二区| 色哟哟哟在线观看视频| 初尝人妻少妇中文字幕在线| 日韩欧美一区二区久久婷婷| 国产成人精品资源在线观看| 日韩一区二区三区在线日| 欧美午夜性刺激在线观看| 日韩一级毛一欧美一级乱| 日韩中文高清在线专区| 日韩性生活视频免费在线观看| 国产精品制服丝袜美腿丝袜| 日韩人妻精品免费一区二区三区 | 99国产高清不卡视频| 色涩一区二区三区四区| 国产色一区二区三区精品视频| 人妻精品一区二区三区视频免精| 97人摸人人澡人人人超碰| 老司机精品视频在线免费| 丰满人妻熟妇乱又乱精品古代| 九九热最新视频免费观看| 高潮日韩福利在线观看| 欧美综合色婷婷欧美激情| 亚洲中文字幕剧情在线播放| 91熟女大屁股偷偷对白|