首页
关于
翻译
留言
统计
搜索
1
以太坊简介
742 阅读
2
搭建 OpenAI 代理
663 阅读
3
第 4 章 创建您的第一个 React 组件
550 阅读
4
如何读懂编译后的 JavaScript 代码
526 阅读
5
第 9 章 使用 Jest 测试 React 应用
477 阅读
JavaScript
TypeScript
后端
Web
移动
运维
杂项
登录
Search
标签搜索
React
翻译
Vue
组件
Angular
工程化
库
Hook
框架
优化
路由
Node.js
Flash
部署
算法
可视化
Debug
测试
兼容
Web3
Flying
累计撰写
267
篇文章
累计收到
2
条评论
首页
栏目
JavaScript
TypeScript
后端
Web
移动
运维
杂项
页面
关于
翻译
留言
统计
搜索到
10
篇
路由
相关的结果
2023-06-22
Mern 身份验证
这是一个关于如何使用 JWT 和 HTTP-only cookie 实现 MERN 栈应用程序的身份验证系统的两部分系列的第二部分。在本部分中,我们将创建前端 React 应用程序,以使用我们在第一部分中构建的 API。我们将使用 Redux Toolkit 进行状态管理。
2023年06月22日
102 阅读
0 评论
1 点赞
2022-05-28
使用 Vitest 模拟 Vue Router
Vue Router 4 是 Vue 3 的官方路由库。自从引入了组合式 API,我们可以在新版的 Vue Router 中使用新的组合式函数。那么我们该如何来模拟这些函数呢?目前 Vue Test Utils 官网文档并没有这方面的介绍。因此,本教程将讲解如何使用 Vitest 模拟 Vue Router,以便测试依赖于应用程序导航的业务逻辑。
2022年05月28日
131 阅读
0 评论
0 点赞
2020-05-28
自定义 Vue 路由器
先前写过一篇为 material 组件自定义 AngularJS 路由器的文章。最近有一个为 Element UI 组件添加自定义路由器的需求,结合 vue-router 也不难实现。需求初始地址为 #city,不会选中区号按钮,面包屑 All;如果导航地址为 #city/0755,则选中0755,面包屑 All > 深圳点击区号按钮(021、0755)会相应修改访问地址(#city/021、#city/0755)点击区号按钮,面包屑会显示为 All > 城市名(广州、深圳)点击面包屑 All 跳转到初始地址 #city可以通过导航栏或浏览器的前进后退按钮导航同步修改浏览器标题栏为当前选择城市名一句话,如何实现区号按钮组、导航栏、浏览器导航三者的同步更新?实现区号按钮组新建 Breadcrumb.vue, 这里我们用 el-radio-group 来渲染区号按钮<el-radio-group v-model="selected" @change="handleChange"> <el-radio-button v-for="item in cities" :label="item.code" :key="item.code" > </el-radio-button> </el-radio-group>以下是单选按钮组遍历要用到的数据:const cities = [ { city: "上海", code: "021", degree: 28, }, { city: "北京", code: "010", degree: 24, }, { city: "广州", code: "020", degree: 33, }, { city: "深圳", code: "0755", degree: 32, }, ];我们为其绑定了 selected 保留,并声明了 handleChange 事件处理方法:handleChange(value) { console.log(value)可以简单测试以下,当切换单选按钮组,会打印不同的区号。为方便,我们没有将这部分实现放到了 Breadcrum 组件中,并没有单独拆分成一个组件。实现导航栏在 Breadcrum 组件中:<nav> <el-button class="el-icon-back" @click="back"></el-button> <el-button class="el-icon-right" @click="forward"></el-button> <router-link>All</router-link> <template v-if="selected"> <i class="el-icon-arrow-right"></i> {{ currentCity }} </template> </nav>我们在这里添加了前进后退按钮和面包屑,下面我们来实现单选按钮组与面包屑的同步。添加以下计算属性:computed: { currentCity() { const found = this.cities.find(item =>item.code === this.selected) if (found) { return found.city } return 'All' } }测试以下,点击区号按钮,面包屑会显示为 All > 城市名,我们完成了第二个需求。要实现其他需求,着重看 Vue Router。配置路由器根据强两个需求,新建 router\index.js,配置如下路由对象后,导出自定义路由器:export default new Router({ routes: [ { path: "/", redirect: "/city" }, { path: "/city/:code", name: "Breadcrumb", component: Breadcrumb } ] });第一个路由默认会跳转到 #city,第二个路由地址使用了参数 code,参数为 0755 则会跳转到 #city/0755。注意,Vue Router 中路由地址传参方式 :paramName。添加路由器在 App 组件中,引入之前的自定义路由器,将其最为插件添加 Vue 示例中。import router from "./router"; //... new Vue({ // ... router, // ... });对照需求 1 测试一下, 没啥问题后来看需求 3:点击面包屑 All 跳转到初始地址 #city。修改面包屑在 Breadcrumb 组件中做如下修改<router-link exact exact-active-class="exact" :to="{ path: '/city' }"> All </router-link><router-link> 组件支持用户在具有路由功能的应用中 (点击) 导航。这里,我们做了两件事:配置了目标路由被精确匹配的时候应该激活的样式配置了表示目标路由的链接 '/city'对照需求 1 测试一下。最后我们来看需求 4:通过导航栏或浏览器的前进后退导航自定义前进后退导航在 Breadcrumb 组件中,我们之前已经添加了前进后退按钮,现在需要实现交互:处理前进forward() { this.$router.go(1); }router.go(n) 方法的参数是一个整数,意思是在 history 记录中向前或者后退多少步,类似 window.history.go(n)。处理后退back() { this.$router.go(-1); }修改 handleChangehandleChange(value) { this.$router.push({ path: `/city/${value}` }); },注意:在 Vue 实例内部,你可以通过 $router 访问路由实例。因此你可以调用 this.$router.push。都是 Vue Router 编程式的导航,很简单。对照需求 1 测试一下。最后我们来看需求 4:通过导航栏或浏览器的前进后退导航同步修改浏览器标题栏这个操作需要直接修改 DOM,是一个副作用,需要监听$route.params.codewatch: { "$route.params.code": { handler(value) { document.title = this.currentCity this.selected = value; }, immediate: true, }, },注意,我们还同步修改了 selected ,并设置 immediate 为 true,确保该回调将会在侦听开始之后被立即调用。参考示例访问 codesandbox 查看项目代码使用 navbar 和 ui-router 动态加载外部模板React Router 简介
2020年05月28日
130 阅读
0 评论
1 点赞
2019-02-18
React 电商项目
本项目需求功能Vue shop 相同,后端 API 也是一样的,使用的是 React 三件套:React、React Router 和 Redux。先对比一下最终效果吧,b本文主要就这两个项目说一说 React 与 Vue 的区别。
2019年02月18日
224 阅读
0 评论
3 点赞
2019-02-08
Vue 电商项目
Vue 2.0 已经正式发布好长时间了。想找一 个 Vue.js、Vue Router 和 Vuex 三件套的实战项目来练手,上 gitHub 搜索了一下搜到一大堆,不过基本上都不是使用单文件组件开发的,更不用说基于 Vue.js 全家桶了。自己动手,丰衣足食。既然做了好几年电商项目,做个电商 App 吧。本项目基于 vue-cli 脚手架搭建,响应式页面布局,真实 的 restful web api 后端数据:就是一个 Vue 全栈开发项目。
2019年02月08日
260 阅读
0 评论
2 点赞
1
2