基础路由
基础路由不需要配置,Nuxt.js 会根据 pages 中的文件夹及文件,自动生成的路由配置
假设 pages 的目录结构如下:
- pages/
- –| user/
- —–| index.vue
- —–| one.vue
- –| index.vue
那么,Nuxt.js 自动生成的路由配置如下:
- router: {
- routes: [
- {
- name: 'index',
- path: '/',
- component: 'pages/index.vue'
- },
- {
- name: 'user',
- path: '/user',
- component: 'pages/user/index.vue'
- },
- {
- name: 'user-one',
- path: '/user/one',
- component: 'pages/user/one.vue'
- }
- ]
- }
同样的,在 /.nuxt/router.js 文件中,我们也能够看到相关内容;
路由导航
Nuxt 中的路由导航有三种方式,一种就是普通的 a 标签跳转,太过于基础这里就不说了,两外两种分别是 nuxt-link 组件和编程式导航,nuxt-link 组件用于在页面中添加链接跳转到其他页面,目前 <nuxt-link> 的作用和 router-link 一致,推荐阅读 Vue 路由文档 来了解它的使用方法,所以,你在Vue 中如何使用,在Nuxt 中同样如何使用就可以了。
而编程式导航的用法,同样与 Vue 中的使用方式一致:
- <template>
- <div>
- <h2>nuxt-link 跳转:</h2>
- <nuxt-link to="/user/info">Go to user</nuxt-link>
- <h2>编程式导航 跳转:</h2>
- <button @click="clickBtn">Go to user</button>
- </div>
- </template>
- <script>
- import axios from 'axios'
- export default {
- methods:{
- clickBtn(){
- this.$router.push('/user')
- }
- }
- }
- </script>
动态路由
在 Nuxt.js 里面定义带参数的动态路由,需要创建对应的 以下划线作为前缀 的 Vue 文件 或 目录。
下划线后面的名字随意命名,但是在获取动态路由参数时,文件的名字就是获取的关键字,用法与 Vue-Router 基本一致:
\pages\user_kk.vue
- <template>
- <div class="mis">
- <h3>动态路由-route</h3>
- <!— 获取参数,打印 –>
- <p>获取参数,打印: {{$route.params.kk}}</p>
- <p>控制台也有输出</p>
- </div>
- </template>
- <script>
- export default {
- mounted(){
- // 获取路由参数,控制台打印
- console.log(this.$route.params.kk)
- }
- }
- </script>
- <style>
- .mis{
- background: coral;
- }
- </style>