目录
  1. 1. 1 完成一级动态分类添加背景颜色
  2. 2. 2 通过JS控制二三级商品分类的显示与隐藏
  3. 3. 3 演示卡顿现象
  4. 4. 4 函数的防抖与节流
  5. 5. 5 完成三级联动节流的操作
  6. 6. 6 三级联动路由传递参数及跳转
  7. 7. 6.1传递参数
  8. 8. 6.2 路由跳转
  9. 9. 论备份的重要性!!!
电商项目day3

1 完成一级动态分类添加背景颜色

  1. 方法一:采用样式完成。
  2. 方法二:通过js完成。事件委托

2 通过JS控制二三级商品分类的显示与隐藏

最开始的时候,是通过css样式display:block|none显示与隐藏二三级商品分类

3 演示卡顿现象

正常:事件触发非常频繁,而且每一次的触发,回调函数都要去执行(如果时间很短,而回调函数内部有计算,那么很可能出现浏览器卡顿)

ps: 正常情况:(用户慢慢的操作):鼠标进入,每一个以及分类h3,都会触发鼠标进入事件
非正常情况(用户操作很快):本身全部的以及分类都应该触发鼠标进入事件,但是经过测试,只有部分h3触发了
就是由于用户行为过快,导致浏览器反应不过来,如果当前会掉函数中有一些大量业务,有可能出现卡顿现象。

节流:在规定时间范围内不会重复触发回调,只有大于这个时间间隔才会触发回调,把频繁触发变为少量触发。
防抖:前面的所有的触发都被取消,最后一次执行在规定的时间之后才会触发,也就是说如果连续快速的触发,只会执行一次。

4 函数的防抖与节流

节流:在规定的时间间隔范围内不会重复出发会掉,只有大于这个时间间隔才会出发回调,把频繁触发变为少量触发。 闭包+延时器

防抖:前面的所以触发都被取消,最后一次执行在规定的时间之后才会触发,也就是说如果连续快速的触发,只会执行一次

lodash插件:里面封装有函数的防抖与节流的插件。

5 完成三级联动节流的操作

6 三级联动路由传递参数及跳转

6.1传递参数

三级联动用户可以点击的:一级分类,二级分类,三级分类,当你点击的时候
Home模块跳转到search模块,一级会把用户选中的产品(名字,id)在路由跳转的时候,进行传递。

路由跳转:
声明式导航: router-link
编程式导航: push|replace

三级联动:如果使用声明式导航,会出现卡顿现象。
router-link,是一个组件,服务器数据返回后,循环出很多的router-link组件,
创建实例的时候,一瞬间创建10000内存,因此出现了卡顿
采用event属性,以及自定义属性与dataset属性实现

6.2 路由跳转

this.$router.push({name:”search”,query:’xxx’})

实现方法:

<a         
href=""
:data-categoryName="c2.categoryName"
:data-category2Id="c2.categoryId"
>{{ c2.categoryName }}
</a>


goSearch(event) {
// 最好的解决卡顿方式:编程式导航+事件委派:把全部的子节点【h3,dt,dl,em】的时间委派给父亲节点
// 存在问题:1:点击的一定是a标签呢 2:如何获取参数【1,2,3级分类的名字】
// 第一个问题:在a标签加上自定义属性:data-categoryName
let node = event.target;
let { categoryname, category1id, category2id, category3id } =
node.dataset;
// 节点有一个属性:dataset,可以获取节点的自定义属性与属性值
// console.log(element.dataset);
// 如果标签身上有categoryname,那就是a标签
if (categoryname) {
// 整理路由跳转到参数
let location = { name: "search" };
let query = { categorName: categoryname };
if (category1id) {
query.category1Id = category1id;
} else if (category2id) {
query.category2Id = category2id;
} else if (category3id) {
query.category3Id = category3id;
}
// 整理参数,动态添加query
location.query = query;
// 路由跳转
this.$router.push(location);
}

论备份的重要性!!!

五一的前三天在跟朋友一起happy,而昨天我开始继续充电,可是,我居然点到了vscode的一个
放弃所有更改,我靠,然后项目直接gg,回到了起点,我是真的没想到,而且时间机器没有备份,也不能通过win的那种软件找回
直接g了,然后我就重新敲了一遍,最气的是中间因为搞得飞快,bug一堆,搞得我不要不要的,痛苦的一逼,不过也算是复习了emmm。
所后面以我直接上传git了,哎,网上也有不少人出现过这个问题,所以备份!!!非常的重要
然后用vscode的git时候,出现了代理问题,fatal: 无法访问 ‘https://github.com/xxxx.git/‘:Could not resolve host: github.com用以下方式解决

git config --global --unset http.proxy

git config --global --unset https.proxy
文章作者: ruqiuvy
文章链接: https://github.com/yiyeruqiuvy/2022/05/04/%E7%94%B5%E5%95%86%E9%A1%B9%E7%9B%AE-day3/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 一夜入秋非生之所
打赏
  • 微信
  • 支付寶

评论