Vue3中Vue-Router的使用

Vue-Router使用

基本搭建过程

文档入门 | Vue Router

第0步:安装vue-router pnpm i vue-router

第一步:创建router对象并导出。

src新建目录routerrouter新建文件index.js

import { createWebHistory, createRouter } from "vue-router";

import Home from "../pages/Home.vue";
import Cart from "../pages/Cart.vue";

const routes = [
  { path: "/", component: Home },
  { path: "/cart", component: Cart },
];

const router = createRouter({
  history: createWebHistory(),
  routes,
});

export default router;

注意相比于文档使用createMemoryHistory这里改为使用createWebHistory

相关页面集中src目录pages目录创建

第二步:在main.js中引入router对象并放到use上

import { createApp } from "vue";
import App from "./App.vue";
import router from "./router";

createApp(App).use(router).mount("#app");

第三步:在核心的App.vue中使用RouterView组件展现路由页面

<script setup>
import { RouterView } from 'vue-router';
</script>

<template>
  <RouterView />
</template>

<style scoped></style>

注意不仅仅是App.vue中需要使用RouterView展现路由页面;所有涉及到父子路由的,在父路由对应的页面中,都需要使用RouterView才能展现子路由对应的页面

设计路由基本结构

设计思路基本布局相同放到一起一个共同父路由布局不同兄弟路由形式存在

比如登录页登录之后页面布局不同并列存在登录之后首页购物车个人中心订单页底部导航页面布局相同所以让他们一起作为Layout对应路由子路由页面

示例

import { createWebHistory, createRouter } from "vue-router";

import Layout from "../pages/Layout.vue";
import Home from "../pages/Home.vue";
import Cart from "../pages/Cart.vue";
import Mine from "../pages/Mine.vue";
import Order from "../pages/Order.vue";
import Login from "../pages/Login.vue";

const routes = [
  {
    path: "/",
    component: Layout,
    children: [
      {
        path: "/home",
        component: Home,
      },
      {
        path: "/cart",
        component: Cart,
      },
      {
        path: "/mine",
        component: Mine,
      },
      {
        path: "/order",
        component: Order,
      },
    ],
  },
  {
    path: "/login",
    component: Login,
  },
];

const router = createRouter({
  history: createWebHistory(),
  routes,
});

export default router;

其中Layout.vue需要放置底部导航组件点击能够跳转到对应页面Layout.vue作为父路由的页面,需要放入RouterView,才能让它的子路由对应页面显示出来

<!-- Layout.vue -->
<script setup>
import { RouterView } from 'vue-router';
</script>
<template>
  <RouterView />
  <div>底部导航菜单放这里</div>
</template>
<style scoped></style>

主模块引入VantUI底部导航组件

文档Vant 4 - A lightweight, customizable Vue UI library for mobile web apps.

1.  安装VantUIpnpm i vant

2.  main.js引入样式引入底部导航组件

import { createApp } from "vue";
// import './style.css'
import "vant/lib/index.css";
import App from "./App.vue";
import router from "./router";

import { Tabbar, TabbarItem } from "vant";

createApp(App).use(router).use(Tabbar).use(TabbarItem).mount("#app");

3.  Layout.vue使用底部导航组件

<script setup>
import { RouterView } from 'vue-router';
</script>
<template>
  <RouterView />
  <van-tabbar route>
    <van-tabbar-item replace to="/home" icon="home-o">首页</van-tabbar-item>
    <van-tabbar-item replace to="/cates" icon="apps-o">分类</van-tabbar-item>
    <van-tabbar-item replace to="/cart" icon="cart-o">购物车</van-tabbar-item>
    <van-tabbar-item replace to="/mine" icon="contact-o">我的</van-tabbar-item>
  </van-tabbar>
</template>
<style scoped></style>

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值