vue中的路由编写方法

方法一:在router/indexs.js文件下配置路由

import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      redirect: '/login'
    }, 
    {
        path: '/index',
        component: resolve => require(['../components/common/index.vue'],resolve),
      children: [
          {
            path: '/index',
            component: resolve => require(['../components/page/home.vue'], resolve)
          },
          {
            path: '/lists',
            component: resolve => require(['../components/page/lists.vue'], resolve)
          },
          {
            path: '/collocation',
            component: resolve => require(['../components/page/collocation.vue'], resolve)
          },
          {
          path: '/largerImage',
            component: resolve => require(['../components/page/largerImage.vue'], resolve)
          },
          {
            path: '/pics',
            component: resolve => require(['../components/page/pics.vue'], resolve)
          },
          {
            path: '/userList',
            component: resolve => require(['../components/page/user.vue'], resolve)
          },
          {
            path: '/personal',
            component: resolve => require(['../components/page/personal.vue'], resolve)
          }
      ]
    },
    {
        path: '/login',
        component: resolve => require(['../components/page/login.vue'], resolve)
    },

  ]
})

方法二:在main.js文件中配置路由

import Vue from 'vue';
import VueRouter from 'vue-router';
import VueAwesomeSwiper from 'vue-awesome-swiper';
import VueResource from 'vue-resource';
import App from './App';
import Selftimer from './components/Selftimer/selftimer';
import Winning from './components/Winning/winning';
import activity from './components/activity/activity';
import seek from './components/login/seekpassword';
import my from './components/my/my'; // 个人页面
import activityDetail from './components/activity/activityDetail';
import recentDetail from './components/activity/recentDetail';
import morePic from './components/morePic/morePic';
import uploader from 'vue-simple-uploader';
// 底部页面
import aboutus from './components/footer/aboutus';
import contact from './components/footer/contact';
import copyright from './components/footer/copyright';
import joinus from './components/footer/joinus';

Vue.config.productionTip = false;

Vue.use(VueRouter);
Vue.use(VueResource);
// vue文件上传
Vue.use(uploader);
// vue-swiper的使用
Vue.use(VueAwesomeSwiper);
// 定义路由
const routes = [
  {path: '/', redirect: '/Selftimer', component: Selftimer},
  {path: '/Selftimer', component: Selftimer},
  {path: '/morePic', component: morePic},
  {path: '/activity', component: activity},
  {path: '/activity/activity_detail', component: activityDetail},
  {path: '/activity/recentDetail', component: recentDetail},
  {path: '/Winning', component: Winning},
  {path: '/seekpassword', component: seek},
  {path: '/my', component: my},
  {path: '/aboutus', component: aboutus},
  {path: '/copyright', component: copyright},
  {path: '/contact', component: contact},
  {path: '/joinus', component: joinus}
];

// 定义路由当前
const router = new VueRouter({
    linkActiveClass: 'active',
    routes
});

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  template: '<App/>',
  components: { App }
});
Vue 3 中,我们使用 `vue-router` 来实现前端路由Vue 3 支持组合式 API,因此 `vue-router` 的使用方式也有所更新。以下是一个完整的 Vue 3 路由配置示例,包括路由定义、导航和动态路由等内容。 ### 示例:Vue 3 + vue-router 基本路由配置 #### 1. 安装 `vue-router` 首先,确保你已经安装了 `vue-router`: ```bash npm install vue-router@4 ``` #### 2. 创建路由配置文件 `router.js` ```javascript // src/router.js import { createRouter, createWebHistory } from 'vue-router' import Home from '../views/Home.vue' import About from '../views/About.vue' import NotFound from '../views/NotFound.vue' const routes = [ { path: '/', name: 'Home', component: Home }, { path: '/about', name: 'About', component: About }, { path: '/:catchAll(.*)*', name: 'NotFound', component: NotFound } ] const router = createRouter({ history: createWebHistory(), routes }) export default router ``` #### 3. 在 `main.js` 中使用路由 ```javascript // src/main.js import { createApp } from 'vue' import App from './App.vue' import router from './router' createApp(App).use(router).mount('#app') ``` #### 4. 在组件中使用 `<router-link>` 和 `<router-view>` ```vue <!-- App.vue --> <template> <div id="app"> <nav> <router-link to="/">Home</router-link> | <router-link to="/about">About</router-link> </nav> <router-view /> </div> </template> <script setup> // 可以在这里使用组合式 API </script> ``` #### 5. 创建对应的视图组件 ```vue <!-- views/Home.vue --> <template> <h1>Home Page</h1> </template> ``` ```vue <!-- views/About.vue --> <template> <h1>About Page</h1> </template> ``` ```vue <!-- views/NotFound.vue --> <template> <h1>404 - Not Found</h1> </template> ``` --- ### 解释 - `createRouter` 和 `createWebHistory` 是 Vue Router 4 的核心 API,用于创建基于 HTML5 历史模式的路由。 - `routes` 是一个路由数组,每个对象代表一个路由规则,包含 `path`、`name`、`component` 等属性。 - `<router-link>` 是 Vue Router 提供的组件,用于生成导航链接。 - `<router-view>` 是 Vue Router 提供的组件,用于渲染匹配到的路由组件。 - 动态路由 `/:catchAll(.*)*` 用于捕获所有未匹配的路径,跳转到 404 页面。 --- ### 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值