vue-router:路由

51 阅读1分钟

路由--->用来实现不同页面的跳转

image.png

常规需要再APP.vue中导入我们的页面,但同一个时间只能显示一个页面,页面的改变需要我们进行手动添加或者修改, 使用路由就可以实现一次添加多个页面,并且实现不用页面的跳转,非常的好用!!!

1.添加路由---->npm install vue-router@4

2.配置路由器

import {createRouter, createWebHashHistory} from 'vue-router'

//导入组件
import LoginDome from '@/views/LoginDome.vue'
import Layout from '@/views/LayOutDome.vue'
import ArticleCategory from '@/views/article/ArticleCategory.vue'
import ArticleManage from '@/views/article/ArticleManage.vue'
import UserAvatar from '@/views/user/UserAvatar.vue'
import UserInfo from '@/views/user/UserInfo.vue'
import UserResetPassword from '@/views/user/UserResetPassword.vue'
//定义路由
const routes = [
    {path: '/login',
        component: LoginDome------------------------------------------------>第一个路由
    },
    {   path: '/',
        component: Layout,
        redirect: '/article/manage',---------------------------------------->第二个路由
        children: [---------------------------------------------------------->子路由
            {path: '/article/category', component: ArticleCategory},
            {path: '/article/manage', component: ArticleManage},
            {path: '/user/avatar', component: UserAvatar},
            {path: '/user/info', component: UserInfo},
            {path: '/user/resetpassword', component: UserResetPassword}
        ]
    }
    // 其他路由...
];

//创建路由
const router = new createRouter({
    history: createWebHashHistory(),
    routes: routes // 使用定义的路由数组
    // 其他选项,如mode: 'history'
});

export default router;

3.在main.js中导入路由

import './assets/main.scss'

import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import router from '@/router/index.js'---------------------------->导入路由
import App from './App.vue'

const app = createApp(App)
app.use(ElementPlus)
app.use(router)--------------------------------------------------->配置路由
app.mount('#app')

4.路由的使用---->index="/路径"

<el-aside width="200px">
  <div class="el-aside__logo"></div>
  <el-menu active-text-color="#ffd04b" background-color="#232323"  text-color="#fff"
           router>
    <el-menu-item index="/article/category">----------------------------->路由的使用
      <el-icon>
        <Management />
      </el-icon>
      <span>文章分类</span>
    </el-menu-item>
    <el-menu-item index="/article/manage">---------------------------->路由的使用
      <el-icon>
        <Promotion />
      </el-icon>
      <span>文章管理</span>
    </el-menu-item>
    <el-sub-menu >
      <template #title>
        <el-icon>
          <UserFilled />
        </el-icon>
        <span>个人中心</span>
      </template>
      <el-menu-item index="/user/info" >--------------------------------->路由的使用
        <el-icon>
          <User />
        </el-icon>
        <span>基本资料</span>
      </el-menu-item>

5.实现页面的跳转

import {useRouter} from 'vue-router'---------------------------------------->导入useRounter方法
const router = useRouter();
//登入函数调用
const login = async function () {
  let result = await userLoginService(registerData.value);
  //是否记住密码
  if (!jzmi.value) {
    clearPassword();
  }
  if (result.code == 0) {
    router.push('/');---------------------------------------------------->push方法转向目标页面
    open1();
  } else {
    open4();
  }
}