Vue Router 学习笔记

建立 router

安装 vue-router npm install vue-router --save

建立 routes.js ,用来设定 router path 跟相对应的 component

import { createRouter, createWebHashHistory } from "vue-router";import HomePage from "./views/HomePage.vue"; // 引入 componentimport CreatePage from "./views/CreatePage.vue";// 设定路由 path、对应的 componentconst router = createRouter({    history: createWebHashHistory(),    routes: [        { path: '/', component: HomePage },        { path: '/create?', component: CreatePage }    ]})export default router

在 main.js 引用 router: app.use(router)

import { createApp } from 'vue'import App from './App.vue';import router from './routes'const app = createApp(App);app.use(router);app.mount('#app')

<router-view></router-view> 就可以选染出 router 设定好的 component

<template>  <navbar></navbar>  <router-view></router-view></template>

好用的语法

<router-link to="/"></router-link>
建立路由连结,类似 <a href="">

router-view
可以将连结(url) 对应的 component 渲染

Router 设定

若要在 path 传递参数可用 :
假设有一个编辑页面 id 不同,可以在 path 写 :id 带入 id
import PageEdit from "./views/PageEdit.vue";// 设定路由 path、对应的 componentconst router = createRouter({    history: createWebHashHistory(),    routes: [        { path: '/', component: HomePage },        { path: '/create?', component: CreatePage },        { path: '/:id/edit', component: PageEdit }    ]})

在 component 里再用 $route.params.id 取得 id

<template>  <h4>Edit page {{ $route.params.id}}</h4></template>
若要将 id 作为 props ,可加上 props: true
import PageEdit from "./views/PageEdit.vue";// 设定路由 path、对应的 componentconst router = createRouter({    history: createWebHashHistory(),    routes: [        { path: '/', component: HomePage },        { path: '/create?', component: CreatePage },        { path: '/:id/edit', component: PageEdit, props: true } // 后面多加上一个 props: true 就可以被当作 prop 来使用    ]})

用 Children 实现在 router 里面再一个 router (Nested Routes)
假设 page 有一个编辑页面、一个新增页面,想要放在 pages 的 path 里面,可用 children 写在 pages 的 path 里面

编辑页面的 url : http://localhost:8080/#/pages/1/edit新增页面的 url : http://localhost:8080/#/create
const router = createRouter({    history: createWebHashHistory(),    routes: [        { path: '/', component: HomePage , props: true },        {            path: '/pages',            component: Pages,            children: [                { path: 'create', component: CreatePage },                { path: ':index/edit', component: PageEdit, props: true }            ]        },    ]})

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章