获得徽章 1
- es6扩展运算符对于一位基础类型数组可以进行深拷贝
b=[1, 2, 3];
a = [...b];
但是当数组中存在二级数组或引用对象时,只保存了引用地址,就是浅拷贝。
但是对于类型明确的数组还是很方便的。评论点赞 - 前端路由的实现原理
路由是监听url变化实现不发生HTTP请求的前提下实现页面跳转
hash通过浏览器的hashchange监听url变化
history通过重写windows的history.pushstate和history.replaceState方法,但是跳转页面后刷新会找不到资源,因此需要后端配合,找不到资源时指向index.html展开等人赞过34 - #青训营笔记创作活动#
2月18日 打卡day17
学习pina,号称下一代Vuex
使用mock服务进行测试,发出ajax请求时,进行拦截,交由mock服务处理;
pinia只包括store,state,getters,actions,没有mutation了
使用流程:创建/注册/创建store/使用
实例化store,像函数一样使用
与vuex一样,持久化——sessionStorage展开评论点赞 - #青训营笔记创作活动#
2月17日 打卡day16
今日学习前端在线预览doc/pdf文件
打算做一个预览文件的组件
使用第三方库实现,docx-preview插件如何导入是个问题,仅需渲染函数配置即可实现;pdf需要将文件渲染到canvas上,考虑缩放问题解决分辨率模糊。过两天尝试一下展开评论点赞 - #青训营笔记创作活动#
2月16日 打卡day15
hashMap问题:键只能是字符串或symbol,其他类型都被转成字符串
为对象设置属性时,如果与原型属性命名冲突,调用具体的方法会不明确
map在处理命名冲突,遍历属性和批量删除属性时比object有优势
map插入速度比object快
此外,在大数量时map比object快
但是,整数索引时object较快
展开评论点赞 - 2月15日 打卡day14
学习特殊的css属性,如sticky绑定页面顶部,便于下拉列表
:empty选择器,接口无数据时使用
gap属性负责grid布局/flex布局的间距
#青训营笔记创作活动#展开1点赞 - 2月14日 打卡day13
学习vue中key的作用
key是vue中虚拟dom标记的唯一标识,diff算法通过对比key快速计算需要保留的节点,在删除数据时,因为vue不会深入地区对比子组件的文本内容,所以会错误移除VDOM中的节点
#青训营笔记创作活动#展开评论点赞 - 2月13日 打卡day12
学习esbuild用法,作为vite的两大引擎之一,使用golang开发
esbuild对文件预编译,尽可能复用**AST每个节点**
缺点在于没有类型检查,无法操作AST
esbuild作为打包器,速度很快;支持在生产环境中用esbuild进行代码压缩
#青训营笔记创作活动#展开评论点赞 - 2月12日 打卡day11
使用vite作为脚手架
vuepress作为说明文档
最主要是注意前端工程化
props每次对类型进行校验
目前不知道为什么无法触发子组件click
在父组件使用了native,可以在父组件触发click
需要在子组件触发click吗
#青训营笔记创作活动#展开评论点赞