首页 > 其他分享 >Vue Router进阶学习

Vue Router进阶学习

时间:2024-10-24 15:48:58浏览次数:8  
标签:Vue const 进阶 router routes Router 路由

各位程序员1024节日快乐~

Vue Router 是 Vue.js 的官方路由管理器,它和 Vue.js 的核心深度集成,让构建单页面应用(SPA)变得简单。以下是 Vue Router 的基本用法

Vue Router 基本用法

安装 Vue Router

首先,你需要安装 Vue Router。如果你使用的是 npm,可以使用以下命令:

npm install vue-router

创建 Router 实例

在你的 Vue 应用中,你需要创建一个 Vue Router 实例,并定义路由。

// 导入 Vue 和 Vue Router
import Vue from 'vue'
import VueRouter from 'vue-router'

// 告诉 Vue 使用 Vue Router
Vue.use(VueRouter)

// 定义路由组件
const Home = { template: '<div>Home</div>' }
const About = { template: '<div>About</div>' }

// 创建路由配置
const routes = [
  { path: '/', component: Home },
  { path: '/about', component: About }
]

// 创建 router 实例
const router = new VueRouter({
  routes // (缩写)相当于 routes: routes
})

在 Vue 实例中使用 Router

将 router 实例传递给 Vue 实例。

const app = new Vue({
  router,
  template: `
    <div id="app">
      <h1>Hello, Vue Router!</h1>
      <ul>
        <li><router-link to="/">Home</router-link></li>
        <li><router-link to="/about">About</router-link></li>
      </ul>
      <router-view></router-view>
    </div>
  `
})

路由组件

路由组件是 Vue 组件,但它们是由 Vue Router 管理的。你可以在 <router-view> 元素中渲染路由组件。

路由参数

你可以在路由配置中定义参数:

const routes = [
  { path: '/user/:id', component: User }
]

然后在组件中通过 this.$route.params 访问参数:

export default {
  data() {
    return {
      user: null
    }
  },
  created() {
    this.user = this.$route.params.id
  }
}

路由导航

你可以使用 <router-link> 组件来创建导航链接,或者使用编程式导航:

<!-- 使用 <router-link> 创建导航链接 -->
<router-link to="/about">About</router-link>
// 编程式导航
this.$router.push('/about')

路由守卫

Vue Router 允许你在路由发生变化之前或之后执行逻辑,称为路由守卫。

const router = new VueRouter({
  routes,
  beforeEach: (to, from, next) => {
    // 在这里执行检查,然后调用 next()
    next()
  }
})

路由懒加载

为了减小应用的加载时间,你可以使用路由懒加载:

const router = new VueRouter({
  routes: [
    { path: '/foo', component: () => import('./Foo.vue') }
  ]
})

以上就是 Vue Router 的基本用法。

你可以在 Vue Router 官方文档 中找到更多高级用法和配置选项。

标签:Vue,const,进阶,router,routes,Router,路由
From: https://blog.csdn.net/weixin_39347873/article/details/143211287

相关文章

  • vue - 菜单栏联动选项卡
    在vue环境下,制作一个与菜单联动的选项卡(el-tabs)。能看到这个文章,大体是有自己动手的打算了,这里给一下关键思路。关键点路由的设计传统的选项卡设计,一般通过iframe实现,在vue环境中,则是使用router-view。问题是,一个界面上,同时存在多个router-view(如果不做标记),内容是完......
  • chrome 控制台console 调用vue页面的方法--来自chatgpt的回答
    问题二:vue2的项目中chrome控制台输入$0.vue会输出什么在Vue2项目中,如果你在Chrome控制台中输入$0.__vue__,这个命令会返回$0当前选中的DOM元素对应的Vue实例。解释:$0:代表ChromeDevTools中当前选中的DOM元素。.vue:这是Vue2中的一个内部属性,它持有与该D......
  • vue - 选项卡右击下拉框
    在element-ui环境下,给选项卡添加右击事件,是相当麻烦的一件事情,主要是麻烦,很多东西都需要注意,并没有太多难点。注意项el-tabs的右击事件事件的名称是contextmenu.prevent.native,这个很快就能找到,需要注意的是:选项卡整个头部都能触发右击事件,需要过滤出哪些事件是由选项卡......
  • vue - 自定义吸附窗口
    业务需求以共享单车界面为例,地图上分布着大量的共享单车,鼠标悬浮在单车上,弹出一个吸附弹窗,内容显示单车详细信息。分析很明显,因为单车的数量可能非常多,我们不可能用显示隐藏的方式实现;合理的做法是,所有单车公用一个弹窗面板,悬浮的时候刷新面板上的数据。方案看着改吧,element......
  • 基于SpringBoot和Vue的地方美食分享与推荐网站的设计与实现(源码+定制+开发)地方美食推
    博主介绍:  ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W+粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优质作者。通过长期分享和实战指导,我致力于帮助更多学生......
  • 20个基础到进阶版的OpenCV4.9.0趣味项目(C++版)(八)——石头、剪刀、布识别手势识别(传统方
    20个基础到进阶版的OpenCV4.9.0趣味项目(C++版)(八)——石头、剪刀、布识别手势识别(传统方法)文章目录20个基础到进阶版的OpenCV4.9.0趣味项目(C++版)(八)——石头、剪刀、布识别手势识别(传统方法)一、引言二、核心知识1.YCrCb空间转换和提取1)YCrCb色彩空间:2)分割:2.凸包凸包计算......
  • 基于springboot+vue的Hadoop的高校教学资源平台的设计与实现(源码+lw+部署文档+讲解等
    课题摘要基于SpringBoot+Vue的Hadoop高校教学资源平台是一个功能强大的教学资源管理系统,结合了先进的技术架构和丰富的功能模块,为高校教学提供了高效、便捷的资源共享和管理平台。以下是该平台的设计与实现方案,包括源码、LW(LiveWire)、部署文档和讲解等内容。一、......
  • 基于Hadoop的热门游戏推荐系统的设计springboot+vue的项目(源码+lw+部署文档+讲解等)
    课题摘要基于SpringBoot+Vue的Hadoop热门游戏推荐系统可以为游戏玩家提供个性化的游戏推荐服务。以下是该系统的设计与实现方案:一、系统功能用户管理用户注册与登录:支持多种注册方式,如手机号码、邮箱等。用户登录后可以管理个人信息。用户偏好设置:用户可以设置......
  • 基于springboot+vue的Hadoop的奶茶数据平台系统(源码+lw+部署文档+讲解等)
    课题摘要基于SpringBoot+Vue的Hadoop奶茶数据平台系统可以为奶茶行业提供全面的数据管理和分析解决方案。以下是该系统的设计与实现方案:一、系统功能数据采集与存储从各种数据源(如门店销售系统、社交媒体、市场调研等)采集奶茶相关数据。使用Hadoop分布式文件......
  • 基于springboot+vue的Hadoop的环境质量数据修复系统设计与实现(源码+lw+部署文档+讲解
    课题摘要基于SpringBoot+Vue的Hadoop环境质量数据修复系统是一个用于处理和修复环境质量数据的强大工具。以下是该系统的设计与实现方案,包括源码、LW(LiveWire)、部署文档和讲解等内容。一、系统概述环境质量数据对于环境保护和决策制定至关重要。然而,由于各种原因......