自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 问答 (2)
  • 收藏
  • 关注

原创 近期分享学习心得4

短路||: 只要碰到了真值(true),就会短路,并返回该真值, 只要短路,不会继续执行后面的表达式。短路&&: 只要碰到了假值(false),就会短路,并返回该假值, 只要短路,不会继续执行后面的表达式。setInterval(fn,1000) 不加括号,1秒后执行,且循环执行。setInterval(fn(),1000) 加括号立即执行一次。在两中心项目里应用了一下,感觉非常厉害。Array.from不出现重复项。||则是前面值假,执行后面的。条件不一样,分支也不一样。条件一样,分支不一样。

2024-04-21 22:45:45 440

原创 近期分享学习心得3

状态库vuex和pinia,存储在内存中,一旦刷新数据没了,在和同事探讨时,发现数据是存储在session和local里,再取出来。第一种方法是动生产环境,修改配置,小于4096就自动转换,改成0。transform是rollup的钩子函数,做代码转换用的。写个插件小于4096在开发环境转成base64,vite是由esbuild和rollup组成,第二种方法是动开发环境,自己写vite插件,读取文件,是buffer对象,转base64。先看之前大屏端的监控部分全屏代码。开发环境里打印的是正常绝对路径,

2023-10-09 23:14:36 594

原创 近期分享学习心得2

将RGB颜色灰度化(基于光感加权平均)

2023-08-01 11:40:55 435

原创 近期分享学习心得1

因为在js里面undefined压根不是关键字,而是window.undefined,window的一个属性,可能是js设计缺陷。原始类型undefined null number string boolean symbol bigint。void是关键字,后面跟表达式,无论跟啥最终制造undefined,但是习惯写0。window.undefined=1,不可以,因为是只读属性。必须let a=void 0;因为undefined不是关键字,

2023-05-11 12:47:36 844

原创 组件通信总览

文章目录组件通信常用方式propseventbusvuex自定义事件边界情况$parent$children$root$refsprovide/inject非prop特性$attrs$listeners组件通信常用方式propseventbus解决无关系组件之间的交互问题,比如兄弟如何使用?//main.jsVue.prototype.$bus = new Vue()//a组件mounted() { this.$bus.$on('isCalled', this.isCalled) /

2021-09-13 16:14:58 222

原创 vue问题

mockjs模拟数据mock文件夹两处,api文件夹一处,自行了解报错[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop’s value. Prop being mutated: “showDial

2021-08-28 17:28:14 685 1

原创 记录Vuex学习

const state = () => ({ currentBox: 3,})//state保存了组件的数据//模板中{{$store.state.msg}}//函数中this.$store.state.msg//想要好看,则//computed: {// msg () {// return this.$store.state.msg // 其他地方就可以直接使用msg// }//}const getters = { currentBox: (state) =>

2021-08-02 09:34:18 235

原创 冲刺面试加油

方法还有很多,常用的、了解的这些就可以 加分回答 以上五个方法中,在数据低于10000条的时候没有明显的差别,高于10000条,第一种和第二种的时间消耗最少,后面三种时间消耗依次增加,由于第一种内存空间消耗比较多,且现在很多项目不再考虑低版本浏览器的兼容性问题,所以建议使用第二种去重方法,简洁方便。constructor:用于检测引用数据类型,检测方法是获取实例的构造函数判断和某个类是否相同,如果相同就说明该数据是符合那个数据类型的,这种方法不会把原型链上的其他类也加入进来,避免了原型链的干扰。

2024-06-04 13:50:57 621

原创 vue3和vite

客户端渲染效率比vue2提升了1.3~2倍SSR渲染效率比vue2提升了2~3倍。

2024-05-15 15:01:20 974

原创 webpack

webpack是用来搭建前端工程的它运行在node环境中,它所做的事情,简单来说,就是打包具体来说,就是以某个模块作为入口,根据入口分析出所有模块的依赖关系,然后对各种模块进行合并、压缩,形成最终的打包结果在webpack的世界中,一切皆是模块。

2024-05-09 01:20:19 1088

原创 手写promise

【代码】手写promise。

2024-05-06 21:58:52 97

原创 proxy代理面试题

其中 target 是我们要代理的对象,handler 则是以函数作为属性的对象,各属性中的函数分别定义了在执行各种操作时代理 p 的行为。其中 target 是目标对象,property 是被获取的属性名,receiver 是 Proxy 或者继承 Proxy 的对象。Proxy 对象用于创建一个对象的代理,从而实现基本操作的拦截和自定义(如属性查找、赋值、枚举、函数调用等)。add 是对象,通过链式传入属性求和返回结果,咱们会想到代理proxy。运行到+3的时候,上面+p报错。

2024-05-06 13:35:53 284 1

原创 阴影画图转html

通过File对象,读成dataURL,生成图片,挂到canvas,生成图片文件对应的rgba数据像素点信息,处理rgba数据转换为box-shadow属性。

2024-04-03 18:06:40 167

转载 手写瀑布流

之前用vue-masonry实现瀑布流。

2024-04-02 13:55:42 179

原创 iOS和安卓端个人踩坑史

本公司不提供测试机,借手机是开发测试中最麻烦的事。

2024-01-16 16:05:50 925

原创 typescript个人学习笔记

深受启发。

2023-12-12 18:29:23 1080

原创 promise

状态一旦决定了就不会发生变化。

2023-11-29 21:15:18 805

原创 canvas

之前的擦掉,重新画一个点。

2023-11-08 15:34:32 116

原创 axios和Ajax

axios是一个请求库,在浏览器环境中,它封装了XHR,提供更加便捷的API发送请求。

2023-11-05 23:32:09 783 3

原创 网络资料(忘传了)

当遇到一个复杂问题的时候,可以使用分层的思想把问题简单化比如,你有半杯82年的可乐,想分享给你的朋友王富贵,但你们已经10年没有联系了。要完成这件事,你可能要考虑:我用什么装可乐?可能的方案:塑料瓶、玻璃瓶、煤气罐怎么保证可乐始终处于低温?可能的方案:保温杯、小冰箱、冰盒如何保证可乐不被运输的人偷喝?可能的方案:封条、在上面写「毒药」如何获取王富贵的地址?可能的方案:报案失踪、联系私人侦探、联系物流公司的朋友如何运输?可能的方案:自行车、汽车、火车、高铁、飞机、火箭。

2023-11-05 22:26:30 286

原创 webSocket

伴随着HTML5出现的WebSocket,从协议上赋予了服务器主动推送消息的能力WebSocket也是建立在TCP协议(图中绿色)之上的,利用的是TCP全双工通信(任意互发消息,http是半双工,客户端可以请求服务器,但是有先后顺序)的能力使用WebSocket,会经历两个阶段:握手阶段(是在TCP三次握手之后)、通信阶段兼容性WebSocket是HTML5新增的内容,因此古董版本的浏览器并不支持维持TCP连接需要耗费资源对于那些消息量少的场景,维持TCP连接确实会造成资源的浪费。

2023-11-02 23:11:45 587

原创 前端有关的算法/手写

【代码】前端有关的算法。

2023-10-31 22:36:58 163

原创 sass相关

完全体。

2023-10-30 20:21:36 242

原创 css3动画应用

https://juejin.cn/spost/7270146769685839909

2023-07-04 22:20:23 219

原创 匹配微博表情包

【代码】匹配微博表情包。

2023-06-26 11:05:22 109

原创 浏览器渲染原理

reflow 的本质就是重新计算 layout 树。当进行了会影响布局树的操作后,需要重新计算布局树,会引发 layout。为了避免连续的多次操作导致布局树反复计算,浏览器会合并这些操作,当 JS 代码全部完成后再进行统一计算。所以,改动属性造成的 reflow 是异步完成的。也同样因为如此,当 JS 获取布局属性时,就可能造成无法获取到最新的布局信息。浏览器在反复权衡下,最终决定获取属性(clientWidth等,产生同步任务,此时不是异步)立即 reflow。paint。

2023-06-24 03:54:13 390

原创 事件循环(字数不足凑字)

一个进程至少有一个线程,所以在进程开启后会自动创建一个线程来运行代码,该线程称之为主线程。主线程结束,整个程序就结束了。如果程序需要同时执行多块代码,主线程就会启动更多的线程来执行代码,所以一个进程中可以包含多个线程。运行代码的「人」称之为「线程」,必须要有人住进房子里,运行进程,房子寸土寸金。程序运行需要有它自己专属的内存空间,可以把这块内存空间简单的理解为进程。每个应用至少有一个进程,进程之间相互独立,即使要通信,也需要双方同意。有了进程后,就可以运行程序的代码了。即使崩溃也互不影响。

2023-06-18 12:58:33 205

原创 路由导航分析和三后台框架路由导航横向对比(没写完)

2023-03-13 18:24:18 346

原创 写了个uView纯前端的知识问答

知识问答

2023-03-03 09:49:52 127

原创 白板服务器搭建环境

默认已安装finalShell。

2022-11-18 18:07:04 259

原创 String字符串方法

如果只是对一个具体字符串来查找,那么使用indexOf()的系统资源消耗更小,效率更高;如果是查找具有某些特征的字符串(比如查找以a开头,后面是数字的字符串),那么indexOf()就无能为力,必须要使用正则表达式和search()方法了。很多时候用indexOf()不是为了真的想知道子字符串的位置,而是想知道长字符串中没有包含这个子字符串。首先要明确search()的参数必须是正则表达式,而indexOf()的参数只是普通字符串。indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

2022-11-17 17:14:04 394

转载 ES6解构赋值

解构赋值

2022-09-07 17:01:30 89

原创 Map对象应用(数组对象去重)

Map对象应用(数组对象去重)

2022-08-31 21:46:47 1115

原创 @hook扩展分析

hook监听实践应用

2022-08-30 23:10:58 1000

原创 文件格式互转

图片格式互转

2022-08-16 15:23:13 82

原创 uView折叠面板修改版

写了一个折叠面板,代码如下<template> <view> <u-collapse> <u-collapse-item name="guide" v-for="(item,i) in collapseList" :key="i"> <text slot="value" class="u-page__item__title__slot-title clickAllBtn" @click.stop="clickAll(item)"&.

2022-05-27 15:13:14 1364 1

原创 合并el-table相同行为一列

<el-table :data="tableData" border :span-method="objectSpanMethod"> <el-table-column prop="province" label="省" width="auto" align="center"></el-table-column> <el-table-column prop="city" label="市" width="auto" align="center"><

2022-05-12 10:58:10 779

转载 Object 对象方法

Object.create()Object.create()方法用于创建新对象并将其链接到现有对象的原型。让我们创建一个job对象实例,并将其扩展到更具体的对象。// 用属性和方法初始化一个对象const job = { position: 'cashier', type: 'hourly', isAvailable: true, showDetails() { const accepting = this.isAvailable ? 'is acce

2022-05-09 11:13:48 161

原创 原生js实现Lodash方法(练笔,暂不考虑边界问题)

lodash无聊手写

2022-05-07 15:09:10 415

转载 vue的mixins(混淆对象)的简单使用案例

前言:本次demo简单的实现vue项目中如何使用mixins(混淆),mixins的作用就是实现将多个组件或页面中共用的属性或方法抽取出来单独定义在mixins中,组件要使用mixins里边的属性或方法,只需要引入该mixins即可,当组件中同时声明了和mixins中同名的属性或方法,组件里边的属性或方法优先级高于mixins;当某个组件或页面引用了mixins里边的属性或方法,并且进行了一些修改操作,这些操作只对当前组件本身有效,不会影响其他组件。准备工作:1.创建相关组件和用于暴露一个mixins(

2022-05-06 15:06:38 506

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除