讲师管理前端-路由切换问题演示和解决 | 学习笔记

简介: 快速学习讲师管理前端-路由切换问题演示和解决

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot)讲师管理前端-路由切换问题演示和解决学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/667/detail/11343


讲师管理前端-路由切换问题演示和解决


路由切换问题演示和解决

1.演示问题:

先做个演示,来看问题所在

路径中有 id 值,数据回显,现在路由在讲师列表中,讲师列表目前是蓝色,现在再点添加讲师,点击添加讲师变成了讲师的添加路径,但表单数据还是刚才的回显数据。

image.png

正确的是点添加讲师之后应该没有数据,表单是清空状态,然后可以写里面的数据。

即先点修改没有问题,再点添加,添加的时候表单数据没有清空还是上次回显的数据,这是目前出现的一个问题。

总结:

第一次点击修改 进行数据回显。第二次再去点击 添加讲师,进入表单页面,但是问题:表单页面还是显示修改回显数据,正确效果应该是表单数据清空

2.解决方式

在做列表时,做一个清空的功能。即做添加讲师时候,表单数据清空就可以。

image.png

当点击清空时,可以清空对象。

  1. 编写代码

打开 save.vue,找到页面渲染之前执行的 created(){}模块,修改代码为:

created(){//页面渲染之前进行

//判断路径有 id 值,做修改

if(this.$route.params&& this.$route.params.id)   {

//从路径获取 id 值

const id=this.$route.params.id

//调用根据 id 查询方法

this.getInfo(id)

}else{//路径没有 id 值,做添加

//清空表单

this.teacher={} //清空teacher就可以

}

修改完代码后先进行测试,查看效果,打开页面,点击讲师列表,点击修改,看到数据回显,再点击添加,发现问题并没有解决

image.png

  1. 上面代码没有解决问题,为什么?

注意:

当在讲师列表中点击修改时需要跳转到 save 页面,再点击添加讲师也需要跳转到save 页面,两次路由跳转都去到同一个页面

此时存在一个问题:在页面中 created 方法后的 else 部分未执行。因为在多次路由跳转到同一页面时,created 方法只会执行第一次,后面在进行跳转不会执行。没有执行所以没有生效,最终未清空。

  1. 最终解决:使用 vue 监听

监听:当路由一旦发生变化,监听就可以知道然后去执行。例如从讲师列表到添加讲师,路由发生变化,监听就可以发现。

增加监听方法:在代码created{}功能模块下添加代码:

watch:{  //监听

$route(to,from)  {  //写法固定,表示路由变化方式,路由发生变化,方法就会执行

console.log('watch $route')

this.init()

}

},

将 created 中的判断代码添加到 methods 中,用 init()进行抽取,即

methods:{

init(){

//判断路径有 id 值,做修改

if(this.$route.params&& this.$route.params.id)   {

//从路径获取 id 值

const id=this.$route.params.id

//调用根据 id 查询方法

this.getInfo(id)

}else{//路径没有 id 值,做添加

//清空表单

this.teacher={} //清空 teacher 就可以

}

},

然后去掉 created 中的代码,修改为

created(){//页面渲染之前进行

this.init()

},

并修改监听方法:

watch:{  

$route(to,from)  {

console.log('watch $route')

this.init()

}

},

最后来测试,打开页面,点击讲师列表,点击修改,数据回显后点击添加讲师,效果如图,数据清空

image.png

什么是监听?

例子:

汽车,在汽车上装报警器,报警器在状态发生变化时会响,报警器就是监控汽车状态的变化,

比如:颤动,报警器会响,这是典型的例子。

这是一个原理,当路由发生切换和变换,里面的监听器就会执行,然后做清空。

相关文章
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
358 0
|
JavaScript 前端开发 开发者
Vue.js 框架大揭秘:响应式系统、组件化与路由管理,震撼你的前端世界!
【8月更文挑战第27天】Vue.js是一款备受欢迎的前端JavaScript框架,以简洁、灵活和高效著称。本文将从三个方面深入探讨Vue.js:响应式系统、组件化及路由管理。响应式系统为Vue.js的核心特性,能自动追踪数据变动并更新视图。例如,通过简单示例代码展示其响应式特性:`{{ message }}`,当`message`值改变,页面随之自动更新。此外,Vue.js支持组件化设计,允许将复杂界面拆分为独立且可复用的组件,提高代码可维护性和扩展性。如创建一个包含标题与内容的简单组件,并在其他页面中重复利用。
285 3
|
10月前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
683 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
存储 JavaScript 前端开发
前端 vue:路由的高级使用
前端 vue:路由的高级使用
|
移动开发 缓存 前端开发
深入理解前端路由:原理、实现与应用
本书《深入理解前端路由:原理、实现与应用》全面解析了前端路由的核心概念、工作原理及其实现方法,结合实际案例探讨了其在现代Web应用中的广泛应用,适合前端开发者和相关技术人员阅读。
|
缓存 前端开发 JavaScript
JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式
本文深入解析了JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式(Hash路由和History路由)、优点及挑战,并通过实际案例分析,帮助开发者更好地理解和应用这一关键技术,提升用户体验。
488 1
|
JavaScript 前端开发 API
前端技术分享:Vue.js 动态路由与守卫
【10月更文挑战第1天】前端技术分享:Vue.js 动态路由与守卫
|
资源调度 JavaScript 前端开发
前端vue:路由的基本使用
前端vue:路由的基本使用
|
移动开发 前端开发 JavaScript
浅谈前端路由原理hash和history
该文章详细解析了前端路由的两种模式——Hash模式与History模式的工作原理及其实现方式,并通过实例代码展示了如何在实际项目中运用这两种路由模式。
|
移动开发 缓存 前端开发
构建高效的前端路由系统:从原理到实践
在现代Web开发中,前端路由系统已成为构建单页面应用(SPA)不可或缺的核心技术之一。不同于传统服务器渲染的多页面应用,SPA通过前端路由技术实现了页面的局部刷新与无缝导航,极大地提升了用户体验。本文将深入剖析前端路由的工作原理,包括Hash模式与History模式的实现差异,并通过实战演示如何在Vue.js框架中构建一个高效、可维护的前端路由系统。我们还将探讨如何优化路由加载性能,确保应用在不同网络环境下的流畅运行。本文不仅适合前端开发者深入了解前端路由的奥秘,也为后端转前端或初学者提供了从零到一的实战指南。

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
    578
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    238
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    226
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    164
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    275
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    408
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    176
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    112
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    191
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    261