自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 shadow dom

允许开发者创建一个独立封装的dom树,也称shadow tree。3.保护组件的内部结构,隐藏组建内部的dom结构。4.提高渲染能力,局部dom更新不会影响到页面。样式和行为是隔离的,不会影响主dom树。1.组件封装,创建独立可重复的组件。5.简化选择器和样式。

2023-12-10 20:01:53 407

原创 react-router-dom文档

前言本来体验下react-router的,然后去react-router npm查看,发现了官方的提示如下:这个包为 React Router 提供了核心路由功能,但你可能不想直接安装它。如果您正在编写将在浏览器中运行的应用程序,您应该安装 react-router-dom。同样,如果您正在编写 React Native 应用程序,则应该安装 react-router-native。这两个都将安装 react-router 作为依赖项也就是说如果想在react项目中添加路由功能,应该使用

2021-10-14 09:49:30 4580

原创 react hooks

useState相当于setState的原子方法const [show, setShow] = useState(false);const [age, setAge] = useState(10);useEffect(callback) useEffect((e) => { console.log("userEffect"); return () => { console.log("destory"); } });这个方法很操蛋啊,尤其是第二个参数根据

2021-09-29 10:25:20 181

原创 react学习第七天

看视频慢慢学习已经没兴趣了,以后直接开始学习源码吧redux感觉就是个发布订阅啊,会用就行这里附上react项目和redux项目学习资料,如果有不会的,可以拿这两个个项目练一练react练习项目GitHub - newZhaoZilong/testReact: 练习react开发redux练习项https://github.com/newZhaoZilong/testRedux...

2021-09-24 15:34:45 129

原创 前端工程化

现在面试有时候会问到工程化问题,所谓工程化,就是在一些问题的上最优解决方法现在做一个大型项目一般遇到的问题有:css管理问题:就是css选择器命名冲突问题怎么解决,就是如何做样式隔离的?方法对于react来说就是css modules,在class里写变量,然后react脚手架自动将变量名转化为唯一的字符串当作class选择器的名字;对于vue来说就是用scoped来解决,原理是同一个组件的所有元素上都添加了一个唯一的属性名,然后通过属性选择器的使用方式隔离样式,这样做是否有性能问题,怎么测试c

2021-09-19 19:18:23 91

原创 react学习第五天

使用react脚手架创建react应用react脚手架1.xxx脚手架:用来帮助程序员快速创建一个基于xxx库的模版项目 1.包含了所有需要的配置(语法检查,jsx编译,devServer...) 2.下载好了所有相关依赖 3.可以直接运行一个简单效果2.react提供了一个用于创建react项目的脚手架库:create-react-app3.项目的整体技术架构为: react + webpack + es6 + eslint4.使用...

2021-09-19 17:49:41 189

原创 react学习第四天

react组件的生命周期<!DOCTYPE html><html lang="en"><head> <meta charset="utf-8"> <title>关于react的学习</title></head><body> <!-- 准备好一个容器,用于挂载 --> <div id="root"></div> <!

2021-09-14 20:30:52 81

原创 react学习第三天

ref属性,这个地方和vue一模一样是为了避免直接操作dom,就是使用document对象,所以添加了ref形式,如果标签上有ref属性,那么当前dom对象可以在实例的this.refs.name上获取到,name就是之前定义的ref属性值。...

2021-09-13 09:28:14 67

原创 react学习第二天

模块:向外提供特定功能的js程序组件:用来实现局部功能效果的代码和资源的集合模块化:当应用的js都已模块来编写的,这个应用就是一个模块化的应用,模块化语法有esmodule和commonjs两种,现在esmodule是趋势,因为esmodule导入的文件必须是字符串并且在编译时就能确定,这样可以根据这个性能做treeshaking优化组件化:当应用是以多组件的方式实现,这个应用就是一个组件化的应用...

2021-09-12 09:23:32 138 2

原创 设计作息表

6:30起床6:55洗漱完毕7:00-7:10早饭,就是喝点牛奶7:10-7:50 第一节8:00-8:40第二节8:40-9:10上班9:20-9:30 早预备9:30早会9:40-10:05第三节10:05-10:20三楼跑步10:30-11:10第四节11:20-12:00第五节12:00-12:45午饭12:45-13:45午休13:45起床14:05-14:45第六节14:55-15:35第七节15:55-16:35第八节16

2021-09-11 23:32:48 137

原创 react学习第一天

<!DOCTYPE html><html lang="en"><head> <meta charset="utf-8"> <title>关于react的学习</title></head><body> <!-- 准备好一个容器,用于挂载 --> <div id="root"></div> <!-- 引入react核心库,.

2021-09-11 18:16:52 74

原创 大厂学习计划

本周计划研究shadow dom 样式隔离方式,听说优于ice,要明白优点是什么研究iframe cookie为什么种植不上,就是简单熟悉一下,月计划研究react项目怎么写,比如组建的封装,跨组件通信方式,单页路由怎么处理,有没有脚手架工具,哪儿个好用,项目结构学习钉钉小程序开发流程,研究钉钉小程序生命周期,页面间通信方式,跳转方式,原生api接口,数据的存储学习qiankun微前端框架,学习微前端源码,明白微前端实现的基本原理...

2021-09-10 17:55:29 114

原创 面试大厂需要掌握的问题

其实准备4个问题就够了webpack打包过程从输入url到页面展示过程vue数据驱动视图过程js运行过程

2021-09-05 20:42:03 71

原创 vuedraggable组件详解

vuedraggable内部是用SortableJS做的,vuedraggable只是做了vue组件方面的封装SortableJS

2021-08-27 13:35:05 1176

原创 webpack打包原理

webpack构建的bundle.js里有两个比较重要的东西,一个是__webpack_modules__对象,对象的key就是页面路径,值就是页面中的代码,每个module对应当前文件一个是__webpack_require__方法,用于执行module的,执行后会在内部创建一个module对象,并将module.exports初始化为空对象,然后执行module代码,如果module里有对module.exports赋值,则会将之前初始化的空对象覆盖还有一个是__webpack_module

2021-08-23 17:35:15 173

原创 未来职业规划

首先学习新公司项目的搭建方法,争取搭建出一套成熟的项目框架,之后可以把这个项目框架作为模版,以后有新项目的时候,直接通过yarn add安装即可,然后可以迅速投入开发框架需要解决的问题1.技术选型一定是vite+vue3+typescript+vuex+vue-router+scss+element2.当文件进行保存操作的时候,自动执行eslint调整代码规范的操作3.常用第三方库使用<script>标签方式引入,这样做的好处是,可以减少打包的时间,并且下载第三方库可以充分利用c

2021-08-14 16:06:05 84

原创 关于新公司的项目学习2

### 2. 项目配置 + 使用技术栈 vue 全家桶 + 关闭vue esm 错误提示 (请注意你的代码标准哦!) + 代码格式化 eslint standard标准 [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) + 网络请求使用 axios + 本地存储使用 session (钉钉环境).

2021-08-10 19:09:49 125

原创 关于新公司项目的学习1

第一天,用svn把项目拉下来,然后使用yarn安装依赖,yarn有啥用,为啥现在很多用yarn的,yarn的优点并行安装,npm是顺序安装,所以yarn的速度会更快,复用缓存包,如果之前已经安装过一个软件包,yarn再次安装时会从缓存中获取自动添加版本锁,yarn.lock类似于package-lock.json项目结构 ├─assets # 静态资源 │ └─img ├─components # 组件库 │ └─glo..

2021-08-10 18:48:34 109

原创 vue插槽原理

vue插槽原理之前一直理解的不好,因为之前一直理解错了,首先插槽和作用域插槽是完全不同的东西,要区别对待对于插槽称之为slotlet AppLayout = { template: '<div class="container">' + '<header><slot name="header"></slot></header>' + '<main><slot>默认内容</slot>&lt..

2021-08-09 23:43:23 905

原创 如何定制第三方库

重写render函数 render (h) { // 对change 事件进行覆盖 const on = { ...this.$listeners } // 项目默认设置 const { border, stripe, fieldFormats } = this // 引入未覆盖的属性 留作扩展 const props = Object.assign({ border, stripe }, { ...this.$attrs }) // 对获取

2021-08-09 17:33:56 118

原创 模板解析(经典面试题)

实现一个简易的模板引擎const template = '嗨,{{ info.name.value }}您好,今天是星期 {{ day.value }}';const data = { info: { name: { value: '张三' } }, day: { value: '三' }};render(template, data); // 嗨,张三您好,今天是星期三实现方式function render(template,

2021-08-08 23:47:03 262

原创 js快速排序

let arr = [23, 22, 3, 4, 1, 8, 99, 66, 12];function quickSort(arr,startIdx,endIdx) { if(startIdx >= endIdx)return; let pivotIdx = partition(arr,startIdx,endIdx); quickSort(arr,startIdx,pivotIdx -1); quickSort(arr,pivotIdx + 1,endIdx);.

2021-08-06 14:51:41 65

原创 手写apply方法(经典面试题)

思想就是想办法把当前方法添加到传入的对象上

2021-08-06 14:49:43 84

原创 手写深拷贝(经典面试题)

//weakMap的key只能是对象,weakMap是弱引用,只要其他对象的引用被删除,垃圾回收机制就会释放该对象占用的内存function deepCopy(value, hash = new WeakMap()) { //如果是正则对象,就创建新的正则对象 if (value instanceof RegExp) return new RegExp(value); //如果是日期对象,就创建新的日期对象 if (value instanceof Date) retur.

2021-08-06 11:34:23 227

原创 手写promise(经典面试题)

class SPromise { constructor(executer) { this.state = "pending"; this.value = null; this.reason = null; this.onResolvedList = []; this.onRejectedList = []; let resolve = (value) => { if (t.

2021-08-05 16:52:40 592

原创 从输入url到浏览器展示页面的过程(经典前端面试题)

输入url,首先会进行dns查询解析域名获取ip地址优化策略:使用dnf-prefech属性,进行dns预查询tcp连接浏览器发送tcp连接的申请的报文,会携带SYN标志位,seq序号,SYN标志位设为1就说明这是一个申请连接的报文,之后服务器回复ACK标志位,ack序号=seq+1,这样浏览器就可以通过检验ack序号的值判断连接是否成功,ACK标志位为1说明这就是一个确认报文,之后服务器发送申请连接的报文,按理说应该是浏览器向服务器端申请连接,服务器回复确认,然后服务器向浏览器申请连接

2021-08-05 13:00:50 174

原创 面试之王(第七次面试)

江苏润和软件聊的还不错

2021-08-04 00:15:48 78

原创 面试之王(第六次面试)

电话面试恒生电子股份有限公司面试问题有:了解微前端吗,原理是什么?前端如何进行性能优化vue原理css怎么进行缩放适配h5新特性js箭头函数原理微前端我不会说实话,这里面性能优化我主要说了vue路由懒加载,原理是webpack会把import()方法引入的文件单独打包,然后加上prefetch属性,就是预加载,就是当前页面资源加载完毕才会进行加载,这个功能对单页面应用尤其重要,可以是单页面首次下载资源迅速减少,并且预加载也可以是单页面打开其他页面的时候快速降低之后就是

2021-08-03 18:22:04 105

原创 vue一个计算属性如何监听另一个计算属性

一般对vue了解不深的都理解不了这个问题,首先说一下vue的基本知识点:watcher 分为三种,lazy watcher和 user watcher和渲染watcher每一个计算属性都对应一个lazy watcher对象,每一个watch对象的属性都对应一个user watcher对象,每一个组件都对应一个渲染watcher对象每一个data中的属性都对应一个dep对象,dep对象是用来收集watcher和通知watcher更新的,简单来说就是当前属性的watcher管理对象,

2021-08-03 16:43:13 1121

原创 面试之王(第五次面试)

电话面试叮叮面试了大概一个小时,主要问题项目碰到的难点,我就说直播间消息爆炸问题,然后性能监控这儿快儿也问了一下,这块儿就是简单说了一下,这个跟项目有关系,说的一般吧,然后是问小程序原理,这个只能简单扯一下,因为小程序源码没什么兴趣看,说了一下,小程序分为逻辑层和视图层两个线程,逻辑层负责执行逻辑,视图层负责渲染视图,setData的时候,会将逻辑层的数据发送到视图层,然后视图层拿到数据执行渲染界面的操作,其实小程序也是用的虚拟dom,这块儿我很熟,但是幸亏没说,之后我说因为逻辑层和视图层分

2021-07-30 22:35:11 190

原创 面试之王(第四次面试)

杭州恒泰软件公司的面试下午5点从公司出发,本来想着面试完回公司呢,后面直接面试到8点首先是技术面试问一些优化,没什么亮点跨域问题面试官秀了一把服务器端反向代理解决线上跨域问题,之后在两个问题上栽了,一个是vue的provideinject功能还有一个是vue的组件封装如何动态加载属性,就是比如把饿了吗组件再封装一层,需要把饿了吗组件的功能全部暴露出来,然后再添加一些自定义属性,这个问题遇到过两次,看来需要研究一下了其他的问题比如宏任务,微任务问题,什么时候时候使用$.

2021-07-29 21:09:21 131

原创 面试之王(第三次面试)

软通动力信息技术电话测试主要问了四个问题数组去重http响应码css盒子模型css居中问题跨域问题sessionStorage和localStorage的区别数组去重没有回答好,后边发现一个很好的办法Array.from(new Set(arr));利用es6的新的set对象去重最简单http响应码,说几个常见的200正常301永久重定向302临时重定向304协商缓存404请求资源不存在502错误网关...

2021-07-28 00:53:47 236

原创 面试之王(第二次面试)

上海易立德信息技术股份有限公司电话面试主要聊了一些项目中遇到的难点我说了两个一个是解决直播间消息爆炸影响页面性能的问题,另一个是原生小程序如何实现vuex,解决小程序页面间通信问题...

2021-07-28 00:44:05 234

原创 面试之王(第一次面试深圳云积分)

今天请假去面试了云积分公司,以后还是尽量不要请假去面试,太花钱了跟面试官聊的很好,因为是熟人介绍面试了两个小时,面试的问题记不清了,大概有强制缓存和协商缓存的区别,项目中遇到的困难,我回答的是直播间上下滑动,和直播间消息过多的处理方式,剩下的时间就主要在讨论,装饰器,mock,代码规范,code-review和性能监控这块儿聊了两个小时,挺有意思的一天后进行了复试,是腾讯视频会议,约的是十点,结果hr发的邮件我没找到,最后发现在垃圾箱里,最后调整为下午6点面试主要问题有X

2021-07-27 11:12:19 392 1

原创 javascript描述符descriptor详解

一.描述符对象是个什么东西?javascript里,有时候不想让用户修改某个对象的属性,则可以把这个对象的属性设置为不可写的,这样用户就不能对该属性进行修改了.实际操作为:这样看来,用户修改属性的时候,先会去访问该属性的描述符对象,如果这个对象的writable的值为false时,则当前属性不可修改也就是说,描述符对象可以控制用户对该属性的操作描述符对象有两种类型,数据描述符和访问描述符(或者称为存取描述符),这个概念感觉巨坑数据描述符对象包括configurable,e..

2020-10-12 19:29:33 2519

原创 BigDecimal的基本使用

一.BigDecimal的创建BigDecimal有两种创建方法,一种是通过构造方法,可以传入String类型,int类型,double类型,long类型或BigInteger类型的参数,一种是通过BigDecimal的静态方法valueOf创建BigDecimal对象,只能传double类型或long类型的参数package com.example2.demo;import or...

2019-09-16 17:55:05 581

原创 fastjson的简单使用

一:将一个java对象转换为json字符串通过JSON.toJSONString(java对象)方法,可以将一个java对象转换为json字符串。使用方法和结果如下:package com.example2.demo;import com.alibaba.fastjson.JSON;import org.junit.Test;class Dog{ private S...

2019-09-07 10:33:35 109

原创 平衡二叉树的插入方法

#include <iostream>using namespace std;//二叉平衡搜索树struct TreeNode { int val; int height; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), height(1), left(NULL...

2019-08-24 20:05:27 900

原创 04-树4 是否同一棵二叉搜索树 (25 分)

#include <iostream>using namespace std;struct Tree{ int val; int flag;//这里添加了一个字段用于区分是否是第一次弹出 Tree * Left; Tree * Right; Tree(int x):val(x),Left(NULL),Right(NULL),fla...

2019-08-11 20:57:49 93

原创 03-树2 List Leaves

#include <stdio.h>#include <stdlib.h>//读取创建树//使用层序遍历输出叶子结点#define Null -1;typedef int Tree;typedef struct TreeNode* TNode;struct TreeNode { int Index; Tree Left; Tree...

2019-07-21 15:38:12 154

空空如也

空空如也

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

TA关注的人

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