您好,登錄后才能下訂單哦!
如何在vue項目中使用vue-router方法?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Vue具體輕量級框架、簡單易學、雙向數據綁定、組件化、數據和結構的分離、虛擬DOM、運行速度快等優勢,Vue中頁面使用的是局部刷新,不用每次跳轉頁面都要請求所有數據和dom,可以大大提升訪問速度和用戶體驗。
一、路由的配置
自動安裝的vue-router,會在src 文件夾下有個一個 router -> index.js 文件 在 index.js 中創建 routers 對象,引入所需的組件并配置路徑
在創建的 routers 對象中, path 配置了路由的路徑,component 配置了映射的組件
然后在main.js里面引入router文件
在創建的 router 對象中,如果不配置 mode,就會使用默認的 hash 模式,該模式下會將路徑格式化為 #! 開頭。
添加 mode: 'history' 之后將使用 HTML5 history 模式,該模式下沒有 # 前綴,而且可以使用 pushState 和 replaceState 來管理記錄。
關于 HTML5 history 模式的更多內容,可以自行度娘
二、嵌套路由
在構建的vue實例中,為了加深項目層級,App.vue 只是作為一個存放組件的容器
其中 是用來渲染通過路由映射過來的組件,當路徑更改時, 中的內容也會發生更改
上面已經配置了兩個路由,當打開 http://localhost:8080 或者 http://localhost:8080/index的時候,就會在 中渲染 index.vue 組件 index.vue 是真正的父組件,其它的子組件都會渲染到 index.vue 中的
想要在一級路由中實現嵌套二級路由,就要修改 router -> index.js
在配置的路由后面,添加 children,并在 children 中添加二級路由,就能實現路由嵌套。 配置 path 的時候,以 " / " 開頭的嵌套路徑會被當作根路徑,所以子路由的 path 需不需要添加 " / " 就要看個人需求了
三、使用 映射路由
如果只需要跳轉頁面,不需要添加驗證方法的情況,可以使用 來實現導航的功能:
<router-link class="item" to="/index/login" >{{ text }}</router-link> <router-link class="item" :to="{path:url, query:data}" >{{ text }}</router-link>
在編譯之后, 會被渲染為 標簽, to 會被渲染為 href,當 被點擊的時候,url 會發生相應的改變
如果使用 v-bind 指令,還可以在 to 后面接變量,配合 v-for 指令可以渲染路由菜單
如果需要傳入不同參數 ,可以在路由中添加動態參數,給 to 傳入一個對象
{ path: item.url, query: { id: '007' } }
然后還可以使用 $ route.query.id
來獲取到對應的參數
四、編程式導航
然而在實際項目下,有很多鏈接在執行跳轉之前,還會執行方法對數據進行處理,這時可以使用 this.$router.push(location) 來修改 url 完成跳轉
// 綁定goLogin <button class="login" @click="goLogin"></button> // 定義goLogin methods: { goLogin() { this.routes.push('/login') } },
push 后面可以是對象,也可以是字符串:
// 字符串 this.$router.push('/index') // 對象 this.$router.push({ path: '/index' }) // 命名的路由 this.$router.push({ name: 'login', params: { userId: '123' }})
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。