当前位置:网站首页>尚硅谷尚品项目汇笔记(二)
尚硅谷尚品项目汇笔记(二)
2022-08-02 15:54:00 【The..Fuir】
(1)编程式导航路由跳转到当前路由(参数不变), 多次执行会抛出 NavigationDuplicated 的警告错误?
---路由跳转两种方式:声明式导航,编程式导航
注意:编程式导航(push|replace)才会有这种情况的异常,声明式导航是没有这种问题,因为声明式导航 vue-router 底层内部已经解决这种问题。
这种异常,对于程序没有任何影响的。
为什么编程式导航会出现这种现象:
由于 vue-router 最新版本 3.5.2,引入了 promise,当传递参数多次且重复,会抛出异常,因此出现上面现象,
第一种解决方案:是给 push 函数,传入相应的成功的回调与失败的回调 (success)=>{} {error}=>{error}
this.$router.push(
{
name: 'search',
params: { keyword: this.keyword },
query: { k: this.keyword.toUpperCase() },
},
() => {},
() => {}
)
这种写法:治标不治本,将来在别的组件当中 push|replace,编程式导航还是有类似的错误
第一种解决方案可以暂时解决当前问题,但是以后再用 push|replace 还是会出现类似现象,因此我们需要从‘根’治病;
1.4
this 当前组件实例(search)
this.$router属性:当前的这个属性,属性值VueRouter类的一个实例,当在入口文件注册路由的时候,给组件实例添加$route|$router 属性
push:Vue 类的一个实例
function VueRouter(){
}
//原型对象的方法
VueRouter.prototype.push=function(){
//函数的上下文为 VueRouter 类的一个实例
}
let $router=new VueRouter();
$router.push(xxx)
this.$router.push();
2.Home 模块组件拆分
----先把静态页面完成
----拆分出静态组件
----获取服务器的数据进行展示
----动态业务
3.三级联动组件完成
---由于三级联动,在 Home、Search、detail,把三级联动注册为全局组件
好处:只需要注册一次,就可以在项目任意地方使用
4.完成其余静态组件
HTML+CSS+图片资源----信息【结构、样式、资源】
5.postman 测试接口
---刚刚经过 postman 工具测试,接口是没问题的
---如果服务器返回的数据 code 字段 200,代表服务器返回数据成功
---整个项目,接口前缀都有/api 字样
6.axios 二次封装
安装 axios
cnpm install --save axios
前端向服务器发数据
XMLHttpRequest、fetch、JQuery、axios
6.1 为什么需要进行二次封装 axios
请求拦截器、响应拦截器
请求拦截器:可以在发请求之前处理一些业务
响应拦截器:当服务器数据返回以后可以处理一些事情
6.2在项目中经常API文件夹【axios】
接口当中:路径都带有/api
baseURL:"/api"
http://xxx.xxx.8080/api
6.3如果有的同学axios基础不好,可以参考git|NPM关于axios文档
7.接口统一管理
项目小:完成可以在组件的生命周期函数中发请求
项目大:axios.get('xxx');
7.1跨域问题
什么是跨域:协议、域名、端口号不同请求,称之为跨域
http://localhost:8080/#home ----前端项目的本地服务器
http://39.98.123.211 ----后台服务器
跨域:如果多次请求协议、域名、端口号有不同的地方,称之为跨域
JSONP、CROS、代理
8.nprogress进度条的使用
start:进度条开始
done:进度条结束
cnpm install --save nprogress
9. vuex状态管理库
9.1 vuex是什么?
vuex是官方提供的一个插件,状态管理库,集中式管理项目中组件公用的数据
切记,并不是全部项目都需要Vuex,如果项目很小,完全不需要Vuex,如果项目很大,组件很多,数据很多,数据维护很费劲。 Vuex
cnpm install --save [email protected]
state
mutations
actions
getters
modules
9.2vuex基本使用
9.3vuex实现模块式开发
如果项目过大,组件过多,接口也很多,数据也很多,可以让Vuex模块式开发
模拟state存储数据
{
count:1,
search:{a:1},
detail(888),
pay:{100}
}
边栏推荐
猜你喜欢
跨境电商看不到另一面:商家刷单、平台封号、黑灰产牟利
软件测试面试中90%会遇到的问题:“你会搭建测试环境吗?”
2.6 - 进程资源
20 Lectures on Disassembly of Multi-merchant Mall System Functions-Platform Distribution Overview
Mysql 查询语句中where字段= '' 作用是什么 ?如何实现多条件查询
2022年值得尝试的7个MQTT客户端工具
julia系列5:文本、图像、其他语言函数互动
06-线程池(3大方法、7大参数,4种拒绝策略)
坚持自主创新 线控底盘领军企业英创汇智获数亿元B+轮融资
链表| leecode刷题笔记
随机推荐
双指针法 | leecode刷题笔记
助力疫情防控,30行代码就能搞定无服务器实时健康码识别!
JZ10 斐波那契数列
2.7 - 文件管理 2.8 - 多级目录结构 2.9 - 位示图
ACL/NAACL'22 推荐系统论文梳理
不平衡之钥: 重采样法何其多
机械臂速成小指南(十八):圆弧规划
数据中台应该怎样规划与建设?_光点科技
【[USACO06NOV]Corn Fields G】【状压DP】
从幻核疑似裁撤看如何保证NFT的安全
AI智能剪辑,仅需2秒一键提取精彩片段
一文搞懂│php 中的 DI 依赖注入
julia系列6:并行计算
2022 年值得尝试的 7 个 MQTT 客户端工具
想要白嫖正则是吧?这一次给你个够!
QueryWrapper method explained
Qt读取Json文件(含源码+注释)
【Transformer专题】Vision Transformer(ViT)原理 + 代码
打破千篇一律,DIY属于自己独一无二的商城
05-读写锁、阻塞队列及四组API、同步队列