面试题答案
一键面试基本步骤和方法
-
安装与引入
- 确保在项目中安装了
vue - router
:npm install vue - router
- 在
main.js
中引入并使用:
import Vue from 'vue'; import VueRouter from 'vue - router'; import App from './App.vue'; Vue.use(VueRouter); const router = new VueRouter({ routes: [] }); new Vue({ router, render: h => h(App) }).$mount('#app');
- 确保在项目中安装了
-
定义动态路由
- 在
router/index.js
中定义动态路由,例如:
const routes = [ { path: '/user/:id', name: 'User', component: () => import('@/views/User.vue') } ];
- 这里
path
中的:id
就是动态参数,id
可以被替换为任意合法的参数名。
- 在
-
导航到动态路由
- 在模板中使用
<router - link>
:
<router - link :to="{ name: 'User', params: { id: 123 } }">User 123</router - link>
- 或者在JavaScript代码中使用
this.$router.push
:
this.$router.push({ name: 'User', params: { id: 123 } });
- 在模板中使用
动态路由参数在组件中获取和使用
- 在组件中获取参数
- 在
User.vue
组件中,可以通过$route.params
获取动态路由参数:
<template> <div> <p>The user ID is {{ $route.params.id }}</p> </div> </template> <script> export default { name: 'User' }; </script>
- 也可以在
created
钩子函数中获取:
<template> <div> <p>The user ID is {{ userId }}</p> </div> </template> <script> export default { name: 'User', data() { return { userId: '' }; }, created() { this.userId = this.$route.params.id; } }; </script>
- 在
- 使用参数
- 比如可以根据
id
从后端获取用户详细信息,在User.vue
的created
钩子函数中:
<template> <div> <p v - if="user">{{ user.name }}</p> </div> </template> <script> import axios from 'axios'; export default { name: 'User', data() { return { user: null }; }, created() { const id = this.$route.params.id; axios.get(`/api/users/${id}`).then(response => { this.user = response.data; }); } }; </script>
- 比如可以根据