面试题答案
一键面试Vue 2中使用Vue Router配置动态路由步骤
-
安装Vue Router:
npm install vue-router --save
-
创建路由文件(通常为router.js):
import Vue from 'vue'; import Router from 'vue-router'; import Home from '@/components/Home'; import User from '@/components/User'; Vue.use(Router); export default new Router({ routes: [ { path: '/user/:id', name: 'User', component: User }, { path: '/', name: 'Home', component: Home } ] });
这里
/user/:id
中的:id
就是动态路由参数。 -
在Vue应用中使用路由: 在
main.js
中:import Vue from 'vue'; import App from './App.vue'; import router from './router'; new Vue({ el: '#app', router, components: { App }, template: '<App/>' });
-
传递参数: 在模板中可以这样传递参数:
<router - link :to="{name: 'User', params: {id: 123}}">User 123</router - link>
在JavaScript中:
this.$router.push({name: 'User', params: {id: 123}});
-
获取参数: 在
User
组件中可以通过$route.params
获取参数:export default { name: 'User', created() { console.log(this.$route.params.id); } };
Vue 3中使用Vue Router配置动态路由步骤
-
安装Vue Router:
npm install vue-router@next --save
-
创建路由文件(通常为router.js):
import { createRouter, createWebHistory } from 'vue-router'; import Home from '@/components/Home.vue'; import User from '@/components/User.vue'; const routes = [ { path: '/user/:id', name: 'User', component: User }, { path: '/', name: 'Home', component: Home } ]; const router = createRouter({ history: createWebHistory(), routes }); export default router;
-
在Vue应用中使用路由: 在
main.js
中:import { createApp } from 'vue'; import App from './App.vue'; import router from './router'; const app = createApp(App); app.use(router); app.mount('#app');
-
传递参数: 在模板中:
<router - link :to="{name: 'User', params: {id: 123}}">User 123</router - link>
在JavaScript中:
this.$router.push({name: 'User', params: {id: 123}});
-
获取参数: 在
User
组件中,若使用Composition API:import { useRoute } from 'vue-router'; export default { setup() { const route = useRoute(); console.log(route.params.id); } };
若使用Options API:
export default { name: 'User', created() { console.log(this.$route.params.id); } };
差异
- 创建路由实例:
- Vue 2:通过
new Router()
创建路由实例。 - Vue 3:使用
createRouter()
函数创建路由实例,并且需要传入createWebHistory()
等函数来定义路由模式。
- Vue 2:通过
- Vue应用使用路由方式:
- Vue 2:在
new Vue()
中传入router
选项。 - Vue 3:通过
createApp().use(router)
的方式使用路由。
- Vue 2:在
- 在组件中获取参数方式:
- Vue 2:主要通过
this.$route.params
获取动态路由参数(Options API)。 - Vue 3:除了
this.$route.params
(Options API),还可以使用Composition API中的useRoute()
来获取参数。
- Vue 2:主要通过