Vue----路由Vue router

Vue----路由Vue router,第1张

根据官方文档说明安装:

npm:

npm install vue-router@4
​
cnpm install vue-router@4

​

yarn:

yarn add vue-router@4

我们可以从github上面下载写stars比较多的示例下来参考如何使用

挑选热度最高的,进去查看examples示例

将项目clone下来后打开,就可以参考里面vue-router的示例了。

查看示例demo:将demo使用到项目中

 项目中使用router:

        1.src中创建router目录,专用来存放路由相关信息;如果直接把路由数据都放在main.js文件中,main.js文件就变得非常臃肿。

        2.在router中创建index.js目录 。

        3.将demo中的示例copy到index.js中

// 0. 安装并导入vue-router
import { createWebHistory, createRouter } from "vue-router";
import home from "@/components/home.vue";
import about from "@/components/about.vue";
import Login from "@/components/login";

const routes = [
    {
        path: "/",
        name: "Home",
        component: home,
    },
    {
        path: "/about",
        name: "About",
        component: about,
    },
    {
        path: "/login",
        name: "Login",
        component: Login,
    },
];

const router = createRouter({
    history: createWebHistory(),
    routes,
});
// 4. export关键字导出路由
export default router;

// 5. 在main.js入口文件中导入vue-router对象

// 6. 根组件App.vue中加载路由内容


        4. 在main.js入口文件中使用该router

import { createApp } from 'vue'
import App from './App.vue'
// 导入vue-router对象
import router from './router'
const app = createApp(App)
// 使用router
app.use(router)
app.mount('#app')

vue2和vue3中main.js入口文件的区别(左2,右3): 

        5. 在根组件App.vue中使用router-view导入路由内容

                xxx

6.浏览器中访问/路径,验证是否会访问到组件内容

7.记一次坑:

vue报错:Component name “xxx“ should always be multi-wordvue报错:Component name “xxx“ should always be multi-word        

原因:语法提示的锅

解决:
在 vue.config.js 中关闭语法提示:

module.exports = defineConfig({
  transpileDependencies: true,
  lintOnSave: false, //关闭eslint检查
})

8.组件中获取前端传递过来的字符串参数/路径参数:

        this.$route.query 获取字符串参数

        this.$route.params 获取路径参数

示例:

login组件:





效果:

嵌套路由(子路由):

        在父路由下再添加子路由

        父路由中通过children:[{},{}]来绑定子路由

import { createWebHistory, createRouter } from "vue-router";
import home from "@/components/home.vue";
import about from "@/components/about.vue";
import Login from "@/components/login";

const routes = [
    {
        path: "/login",
        name: "Login",
        component: Login,
        children:[
            {path:'',name:'About',component:about},
            {path:'/home',name:'Home',component:home},
        ]
    },
];

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

export default router;

路由是从上到下匹配

在子组件上使用

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1321013.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-11
下一篇 2022-06-11

发表评论

登录后才能评论

评论列表(0条)

保存