首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    Vue router原理

    路由的本质就是建立url和页面之间的映射关系 router 模式 hash / history hash模式是vue-router的默认模式。 中实现原理 VueRouter核心是,通过Vue.use注册插件,在插件的install方法中获取用户配置的router对象。 1.url改变 2.触发事件监听 3.改变vue-router中的current变量 4.监视current变量的监视者 5.获取新的组件 6.render // 存储全局使用的Vue对象 let = Vue // 将main文件中实例化Vue对象时传入的router对象添加到Vue的原型链上。 $options.router) { _Vue.prototype.$router = this.

    72610编辑于 2022-09-18
  • 来自专栏南山种子外卖跑手的专栏

    vue router 4 源码篇:路由诞生——createRouter原理探索

    开场 哈喽大咖好,我是跑手,本次给大家带来vue-router@4.x源码解读的一些干货。 那么,Vue Router又是如何借用H5 History,完美与Vue结合在一起,并处理当中千丝万缕的联系的呢?在《Vue Router 4 源码探索系列》专栏中,我们一起揭秘它的神秘面纱。 ; 了解router对象中getRoutes、push等12个核心方法的实现原理; 关于vue-router@4.x 对于vue-router的版本3.x和4.x还是有区别的,并且源码的git仓库也不一样 vue-router@4.x主要是为了兼容vue3而生,包括兼容vue3的composition API,并提供更友好、灵活的hooks方法等。本章节主要是探讨4.x版本的源码。 源码仓库:vue-router@4.x pnpm的包管理模式 纵贯而视,作者用了pnpm管理Monorepo方式来组建vue-router,这样项目管理模式带来的好处无需多言,主要有以下优势: pnpm

    3K30编辑于 2022-10-05
  • 来自专栏进击的大前端

    实现自己的Vue Router -- Vue Router原理解析

    服务器解析请求的地址 4. 拿到对应的页面 5. 返回页面 前端路由 1. 输入url 2. js解析地址 3. 找到地址对应的页面 4. 执行页面的js 5. 渲染页面 Vue-Router工作流程 vue-router的工作流程有如下几步 1. url改变 2. 触发监听事件 3. 改变vue-router里面的current变量 4. Vue插件 在使用Vue-Router之前我们都会调用下Vue.use,那Vue.use方法究竟是干嘛的呢? 一层拷贝,Object.assign有兼容问题,这个方法是一个for...in循环 3. mergeOptions:合并选项 4. defineReactive:这就是Vue实现响应式的核心代码,可以看看之前我讲 vue router

    89541发布于 2020-10-15
  • 来自专栏进击的大前端

    自己实现一个Vue Router -- Vue Router原理解析

    服务器解析请求的地址 4. 拿到对应的页面 5. 返回页面 前端路由 1. 输入url 2. js解析地址 3. 找到地址对应的页面 4. 执行页面的js 5. 渲染页面 Vue-Router工作流程 vue-router的工作流程有如下几步 1. url改变 2. 触发监听事件 3. 改变vue-router里面的current变量 4. Vue插件 在使用Vue-Router之前我们都会调用下Vue.use,那Vue.use方法究竟是干嘛的呢? vue.util.extend不同于vue.extend,vue.extend可以继承单个组件,然后渲染单个组件,可以用于单元测试 实现自己的Vue Router 前置知识都讲完了,下面正式开始写一个自己的 vue router

    47040编辑于 2022-09-16
  • 来自专栏前端面试题总结

    手写vue-router核心原理

    最近也在观察vue3新特性,抽空玩一玩嵌套路由的vue-router,直接上代码项目目录结构图片代码展示app.vue<template>

    < /App.vue'import router from './router'new Vue({ router, render: h => h(App)}). = new VueRouter({ routes});export default router;vue-router.js这里先借助Vue的工具Vue.util.defineReactive实现数据响应式 ) { Vue = _Vue // Vue全局混入,等new Vue中的router实例创建之后挂载到VueVue.mixin({ beforeCreate() { if (this $options.router) { Vue.prototype.$router = this.

    57820编辑于 2022-09-26
  • 来自专栏九旬大爷

    # Vue-router 原理解析

    # Vue-router 原理解析 参考: Vue-Router 官网:https://router.vuejs.org/zh/ Vue 技术揭秘/Vue-Router:https://ustbhuangyi.github.io /vue-analysis/v2/vue-router/ 插件机制:实现一个 install 方法,接受一个 Vue 实例。 # 路由注册 通过 Vue.use 的方式执行 vue-router 的 install 方方法,并将 Vue 实例传入进去。 通过 mixin 的方式,在 beforeCreate 和 destroy 中将逻辑混入在每一个组件上 监听路由改变使用的是 Vue 的双向绑定 然后给 Vue 原型上设置router和route两个属性 接着又通过 Vue.component 定义全局的<router-link>和<router-view>组件 this. this.

    66631编辑于 2023-10-18
  • 来自专栏秋风的笔记

    手写Vue-router核心原理,再也不怕面试官问我Vue-router原理

    手写vue-router核心原理 一、核心原理 1.什么是前端路由? 2.如何实现前端路由? 七、完善VueRouter类 八、完善$route 九、完善router-view组件 十、完善router-link组件 一、核心原理 1.什么是前端路由? (4)实现 Vue.use = function(plugin){ const installedPlugins = (this._installedPlugins || (this. 4、由于plugin参数支持对象和函数类型,所以通过判断plugin.install和plugin哪个是函数,即可知用户使用哪种方式祖册的插件,然后执行用户编写的插件并将args作为参数传入。 _router.history对应的收集器dep就会通知router-view的组件依赖的wacther执行update(),从而使得router-view重新渲染(其实这就是vue响应式的内部原理

    9K63发布于 2021-09-22
  • 来自专栏前端实验室

    vue-router原理分析与实践

    今天大师兄跟大家简单聊聊Router的实现原理,以及我们如何去实现这样一个插件。 Vue RouterVue.js官方的路由管理器。 关于Vue Router的使用就不做过多介绍了,大家可以前往Vue Router官网去学习哦~ vue-router插件的基本使用 import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) const router = new Router({routes:[]}) export default router import /route' new Vue({ render: h => h(APP), router }) 从上述代码可以看出,router也是作为一个插件去使用的,所以在进行原理实践时候,我们开发的就是一个插件 插件开发思路 定义一个Router类,用来进行所有的router操作。定义一个install方法,将router挂载到Vue的实例上去。

    39411编辑于 2022-12-02
  • 来自专栏前端实验室

    vue-router原理分析与实践

    今天大师兄跟大家简单聊聊Router的实现原理,以及我们如何去实现这样一个插件。 Vue RouterVue.js官方的路由管理器。 关于Vue Router的使用就不做过多介绍了,大家可以前往Vue Router官网去学习哦~ vue-router插件的基本使用 import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) const router = new Router({routes:[]}) export default router ​ import /route' new Vue({ render: h => h(APP), router }) 从上述代码可以看出,router也是作为一个插件去使用的,所以在进行原理实践时候,我们开发的就是一个插件 定义一个install方法,将router挂载到Vue的实例上去 注册全局组件router-link和router-view,router-link组件解析为一个a标签,router-view解析为一个

    51800发布于 2021-11-06
  • 来自专栏青年码农

    Vue3项目使用Vue-router4(对比vue2配合Vue-router3)

    使用脚手架搭建的Vue3项目默认使用的路由版本是4,由于Vue3和Vue2写法差异较大,所以需要从新熟悉Router用法,本篇文章比较下两个版本的写法差异,不做深层次的讲解,主要是我也不懂。 1 Vue2配合Vue-router3 说多了没用,直接上代码 import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter 2 Vue3配合Vue-router4 import { createRouter, createWebHistory } from "vue-router"; import login from ". 3 跳转 Vue3和Vue2版本跳转区别挺大,因为this的问题。 Vue2跳转 this. $router.push({ path: "/index" }); Vue3跳转 import { useRoute, useRouter } from "vue-router"; export

    4.2K1414发布于 2021-01-05
  • 来自专栏centosDai

    vue-router 4 你真的熟练吗?

    虽然 vue-router 4 大多数 API 保持不变,但是在 vue3 中以插件形式存在,所以在使用时有一定的变化。接下来就学习学习它是如何使用的。 一、安装并创建实例 安装最新版本的 vue-router npm install vue-router@4 或 yarn add vue-router@4 安装完成之后,可以在 package.json 文件查看vue-router的版本 "dependencies": { "vue": "^3.2.16", "vue-router": "4" }, 新建 router 文件夹,新建 index.js 后边可以省略 .vue 后缀,但在 vue-router 4这不能省略后缀,否则就报错了。 ,vue-router4中,需要从vue-router内引入需要的插件。

    1.1K20编辑于 2021-12-01
  • 来自专栏终身学习者

    Vue Router 4 的相对之前的变化

    Vue Router 4 已经发布了,我们来看看新版本中有哪些很酷的特性。 Vue3 支持 Vue 3 引入了createApp API,该API更改了将插件添加到Vue实例的方式。 因此,以前版本的Vue Router将与Vue3不兼容。 Vue Router 4 引入了createRouter API,该API创建了一个可以在Vue3中安装 router 实例。 // Vue Router 3 const router = new VueRouter({ mode: "history", routes: [...] }); 在Vue Router 4中, // Vue Router 4 import { createRouter, createWebHistory } from "vue-router"; export default createRouter isAuthenticated) { next(false); } else { next(); } }) // Vue Router 4 router.beforeEach

    97320编辑于 2022-06-15
  • 来自专栏Java 学习

    Vue Router

    Vue RouterVue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。 安装 npm install vue-router # 使用 CDN <script src="https://unpkg.com/<em>vue</em>/dist/<em>vue</em>.js"></script> <script src="https://unpkg.com/<em>vue</em>-<em>router</em>/dist/<em>vue</em>-<em>router</em>.js"></script> ☞ 语法(src\router/index.js) import Vue from 'vue' import Router from 'vue-router' // 增加这一行, 作用是引入 MyPage 这个组件 import MyPage from '@/components VueRouter from 'vue-router' import Home from '..

    1.5K30发布于 2020-09-28
  • 来自专栏老怪兽的前端之旅

    Vue Router

    本章简介

    85210编辑于 2023-02-22
  • 来自专栏花猪的学习记录

    Vue学习-Vue router

    前言 本文将介绍Vue-router的使用。 ---- Vue-router 前端路由 前端路由的核心就是改变URL,但是页面不进行整体的刷新。 文件: 基本框架如下: // 配置路由相关的信息 import VueRouter from 'vue-router' import Vue from 'vue' // 1.通过Vue.use(插件) VueRouter({ // 配置路由和组件之间的应用关系(用发同Vue对象) routes, }) // 3.将router对象传入到Vue实例 export default router 当然在main.js文件中需要在Vue实例中注册router实例: import Vue from 'vue' import App from '. /router' //导入router对象 Vue.config.productionTip = false new Vue({ el: '#app', router, //在Vue实例中注册

    4.8K20编辑于 2022-02-17
  • 来自专栏前端知识铺

    前端路由简介以及vue-router实现原理

    通过这些就能用另一种方式来实现前端路由了,但原理都是跟 hash 实现相同的。用了 HTML5 的实现,单页路由的 url 就不会多出一个#,变得更加美观。 router 实现 我们来看一下vue-router是如何定义的: import VueRouter from 'vue-router' Vue.use(VueRouter) const router 是通过 Vue.use的方法被注入进 Vue 实例中,在使用的时候我们需要全局用到 vue-routerrouter-view和router-link组件,以及this. vue-router 实现 -- install vue-router 实现 -- new VueRouter(options) vue-router 实现 -- HashHistory vue-router 实现 -- HTML5History vue-router 实现 -- 路由变更监听 造轮子 -- 动手实现一个数据驱动的 router 经过上面的阐述,相信您已经对前端路由以及vue-router有了一些大致的了解

    1.9K60发布于 2018-06-06
  • 来自专栏全栈开发工程师

    Vue Router】013-Vue Router 与组合 API

    1.13 Vue Router 与组合 API 1.13.1 概述 实际上,我们在上面的代码里面已经尽量使用组合 API 了,在这里进行一个总结。 代码示例如下: import { useRouter, useRoute } from 'vue-router' export default { setup() { const router , onBeforeRouteUpdate } from 'vue-router' export default { setup() { // 与 beforeRouteLeave 相同, 1.13.4 useLink* Vue Router 将 RouterLink 的内部行为作为一个组合式 API 函数公开。 它提供了与 v-slot API同的访问属性: import { RouterLink, useLink } from 'vue-router' export default { name:

    39810编辑于 2025-01-06
  • 来自专栏路过君BLOG from CSDN

    vue3 router4 router-view transition keep-alive用法

    <template> <router-view v-slot="{Component}"> <transition name="view" mode="out-in"> <keep-alive Component" :key="$route.fullPath" /> </keep-alive> </transition> </router-view

    1.4K30编辑于 2022-04-13
  • 来自专栏前端开发随笔

    Vue3+Vue-Router4.x实现路由跳转传参

    安装路由,注意需要4.x版本 npm install vue-router -s 在src目录下新建router\index.js import { createRouter, createWebHashHistory } from 'vue-router' const router = createRouter({ history: createWebHashHistory(), routes: /App.vue' import router from '. /router' const app = createApp(App) app.use(router) app.mount('#app') App.vue新增 <router-view></router-view > 在vue中使用 <script> import { useRouter } from "vue-router"; export default { setup() {

    86910编辑于 2022-05-05
  • Vue2 和 Vue3 中 Vue Router 用法与原理详解

    Vue3 中的 Vue Router (v4) 随着 Vue3 的发布,vue-router@4 也随之推出,全面适配 Composition API 和新的应用实例创建方式。 下面我们来看如何在 Vue3 项目中配置和使用 Vue Router v4。 1.安装与基本配置 首先安装 vue-router@4,然后使用 createRouter 工厂函数创建路由实例。 核心原理分析 理解 Vue Router 的底层原理有助于我们更好地调试问题、优化性能,甚至自研轻量级路由库。 1.Vue Router 3 (Vue2) 原理Vue2 中,Vue Router 本质是一个 Vue 插件,通过 Vue.use() 注册后,会将 router 和 route 注入所有组件实例 Router 4 (Vue3) 原理 Vue Router v4 彻底拥抱了 Vue3 的响应式系统和依赖注入机制。

    71310编辑于 2025-11-30
领券