- 博客(46)
- 资源 (1)
- 收藏
- 关注
原创 React 优先级队列小顶堆的简单实现
我们都知道 React Schedule 中的优先级队列,本身采用小顶堆来保证队列的第一个任务是优先级最高的,并且获取优先级最高的任务的时间复杂度为 O(1)。但由于小顶堆的特性,我们需要保证第一个任务优先级要最高,所以需要拿新任务和他的所有父节点去进行对比。移除操作也是同理,移除一个高优先级任务之后,会把队尾的任务提高最顶部来,为了保证小顶堆的特性,所以需要拿这个任务和其子节点进行对比。首先优先级队列有两种操作,一种是添加任务,另外一种是移除优先级最高的任务(第一个任务)
2024-04-02 22:09:14
680
原创 处理关于 React lazy 白屏的两种方案
当然这么做也有坏处,就是点击了之后可能会由于资源加载时间较长被用户误认为是服务出问题了,这个就看各自的取舍了,毕竟老板和产品的意图不是我们能决定的。这么做的好处就是,当你触发了路由跳转的事件之后,由于路由跳转的优先级被降低了,所以会继续在当前页面等待懒加载资源的加载,然后才触发页面跳转。去懒加载一个路由组件,在不做任何其他处理的情况下从其他页面首次进入到这个懒加载的路由页面时,肯定会出现白屏的现象。以前针对这种问题的处理方案无非就是使用。但是这种方案,在跳转的时候会出现的。的页面,再出现懒加载的页面。
2024-03-30 15:17:39
1151
原创 面试篇:求职中必须掌握的Vue知识点(二)
这篇文章是作者在求职过程所总结的Vue相关面试题及其答案。如果看不懂的话,可以配合其他博主的文章来看,我这里只是面试题及其答案,不会全方面来讲解,毕竟每一个知识点扯出来都能写一篇文章了。本篇是Vue知识点的最后一篇,下一篇文章还是面试篇,应该会出一篇在前端领域中的必须掌握的网络知识。希望读者还是能阅读一下,我在求职中前端网络基本是每个公司都会问的,特别是大厂,例如腾讯、字节、美团。
2021-05-07 17:03:26
523
13
原创 面试篇:求职中必须掌握的Vue知识点(一)
这篇文章是作者在求职过程所总结的Vue相关面试题及其答案。今天先码这么多,后续面试题还会继续补上。谈谈你对Vue响应式原理的理解利用数据劫持结合发布-订阅者模型的方式,利用Object.defineProperty对属性的setter和getter进行监听,当数据发生变化时会去通知订阅者,触发相对应的监听回调。每个组件实例都对应一个 watcher 实例,它会在组件渲染的过程中把“接触”过的数据 property 记录为依赖。之后当依赖项的 setter 触发时,会通知 watch...
2021-05-04 21:01:45
1135
10
原创 再也不怕面试官问call、apply、bind的区别和原理
前言前些日子从腾讯离职后,便一直在准备着面试。今天写这篇文章的目的是为了让大家更好的理解call、apply、bind的原理。call、apply、bind是高频面试题,我以前经历的每一次一面面试中基本都会有面试官问call、apply、bind的区别以及实现原理。理解call、apply、bind三者都是用来调用函数并且改变函数内部的this指向对于call和apply,两者的不同点是传入的参数,call可以传入多个参数,apply传入的是一个数组对于bind,它可以传入多个参数,并且返回一个
2020-10-25 13:29:28
282
1
原创 如何应对vue项目优化的需求,掌握这“神器”就够了
分析vue-cli 3.x自带了分析工具,直接运行vue-cli-service build --report生成report.html即可,生成的report.html在dist目录下。博主针对优化的项目目前没有进行任何优化。在浏览器中打开report.html。用浏览器F12进入开发工具,选中Network并只过滤查看JS。此时,app.js和chunk-vendors.js的...
2020-05-02 11:18:58
1978
原创 “新冠“下的腾讯面试?你是否有诸多问号
这篇文章是在我历经了2个月左右的腾讯远程面试的折磨下才酝酿出来的,面试结果最终也是凉凉。写这篇文章主要目的是为了给观看本文章的读者一些面试经验。关于这篇文章的内容总结为测试开发2面技术面+HR面、2面web前端1面技术面测试开发(腾讯应用宝)技术一面(视频面)自我介绍(自我介绍基本是每个面试官都会问的一个问题。这个问题主要是为了了解你的学历、专业、毕业院校、工作经历、项目经历、技术栈...
2020-04-08 20:15:21
1209
1
原创 前端算法学习(二)-------- 栈和队列
栈特性:后进先出,就好比在一个只有一个口的箱子里放东西,前面先放进去的东西只能后面再拿出来function Stack() { this.arr = []; this.push = function (value) { this.arr.push(value); }; this.pop = function () { re...
2020-03-01 21:16:36
320
原创 前端算法学习(一)-------- 线性数据结构
数组特性:1.存储在物理空间上连续的2.底层的数组长度是不可变的,js中改变数组长度会很消耗性能3.数组的变量,指向了数组第一个元素的位置(内存空间的地址)...
2020-03-01 20:41:15
368
原创 MVVM原理(建立虚拟DOM树)
1.创建虚拟节点的类,这里使用es6语法糖。export default class VNode { constructor( // 节点类型和标签类型的区别是什么? tag, // 标签类型,DIV,SPAN,INPUT,#text ele, // 对应的真实节点 children, // 当前节点下的子节点 ...
2020-02-22 22:02:42
726
原创 MVVM原理(代理data)
const arrayProto = Array.prototype;function defArrayFunc(obj, func, namespace, vm) { Object.defineProperty(obj, func, { configurable: true, enumerable: true, // 当且仅当该属性的enumerab...
2020-02-20 22:50:26
290
原创 js变量(ES6)
声明变量方式(4种)a = 1;var b = 2;let c = 3;const d = 4;console.log(a); // 1console.log(b); // 2console.log(c); // 3console.log(d); // 4区别第一种不加任何关键字声明变量,默认效果是和var一样的。第二种var,声明的变量拥有全局作用域或者局部作用,...
2020-02-16 19:52:18
174
原创 vue ssr服务端渲染入门demo
入门基础1.vue2.express步骤1.初始化项目,npm init2.安装vue、express、vue-ssr-renderer, npm i express vue vue-ssr-renderer -S3.同级目录中创建server.js和index.html代码index.html<!DOCTYPE html><html la...
2020-02-09 21:23:36
710
原创 vue中引入腾讯地图
背景在一个项目中引入定位功能,该项目使用了vue。问题原先是打算使用h5原生位置api进行开发,但是在进行了大量的搜索后,发现h5原生位置api不符合本项目的需求,故而采用了腾讯地图api来定位,获取当前用户的位置。这里肯定有网友会说为什么不用高地图api或者百度地图api,由于本项目是用于商业目的,并且公司资金不多,故而采用腾讯地图api。注意在开发跟定位有关的功能时,注意必...
2020-02-04 21:03:12
4125
原创 移动端h5中使用原生websocket遇到的问题
背景在一个项目的聊天模块中,前端使用了vue加上h5的原生websocket。问题当我在PC端本地测试完毕后,准备完美收场。然而在使用手机连接局域网之后访问该网页,突然发现websocket中的onopen事件失效没有执行,就直接执行了onclose事件。解决解决方案有很多中,例如使用一些大神封装好的组件、配合后端使用心跳机制、nginx反向代理等。这里我通过使用nginx做反...
2020-02-04 20:19:37
1370
原创 nginx中部署多vue项目(亲自踩坑)
注:博主用的是vue-cli3搭建的vue项目,在nginx中用一个端口配置不同的url,分别通过127.0.0.1/comfessionWall和127.0.0.1/office访问修改vue.config.js在第一个vue项目的vue.config.js添加publicPath: '/comfessionWall'module.exports = { //部署应用包...
2019-11-01 15:17:59
4968
3
原创 Vue2.x background:url()踩坑
开发模式下vue中background: url(‘../../assets/img/xxxxx’)直接写在行间样式不生效,即不能直接在标签中style属性中写,必须写在非行间样式才会生效
2019-07-24 11:34:58
10248
原创 微服务之搭建springcloud项目(一)
1.新建Maven项目File -> New -> Project -> Maven -> Next接着填写GroupId和ArtifactId,然后点击next填写Project name,然后点击finish2.修改jobgo的pom.xml增加springcloud依赖以及相关依赖<?xml version="1.0" enco...
2019-07-04 22:17:44
343
原创 vue-cli3.x引入bootstrap
局部安装bootstrapnpm install bootstrap -D修改src下的main.jsimport Vue from 'vue'import App from './App.vue'import router from './router'import store from './store'import './registerServiceWorker'...
2019-06-25 13:28:23
1558
原创 vue-cli3.x引入jquery
首先先局部安装jquery, -D相当于--save-devnpm install jquery -D在src下创建jquery.js,内容如下import Vue from 'vue'import jQuery from 'jquery'Vue.prototype.$ = jQuery;export default jQuery;修改src下的main.js,内容如下...
2019-06-25 12:48:58
1346
原创 杭电2553 N皇后问题
N皇后问题25531 问题描述在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。2 输入共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。3 输出共有若干行,每行一个正整数,表示对应输入行的皇后的不同...
2019-06-24 20:22:04
235
原创 python+tkinter计算器
from tkinter import *from tkinter.messagebox import *root = Tk()root.geometry('300x200')root.title('计算器')num = StringVar()Entry(root, textvariable = num, bg = "yellow").place(relx=0...
2019-06-03 22:50:46
958
1
原创 python+tkinter学生管理系统
from tkinter import *from tkinter.messagebox import *import sqlite3from tkinter import ttkdbstr = "H:\mydb.db"root = Tk()root.geometry('700x1000')root.title('学生管理系统')Label(root, tex...
2019-06-03 22:46:33
17270
34
原创 js轮播图生成器
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>09轮播图作业</title> <style> * { margin: 0px; p...
2019-03-22 12:24:51
428
原创 JavaScript学习笔记
01 快速掌握BOM对象核心技能// 1.innerHeight和innerWidth// document.body.clietHight,document.body.clietWidth// 注意点:获取可视区的距离时没有包含滚动条的滚动距离,即获取的是整个文档// window.innerHeight,window.innerWidth// 注意点:获取可视区的距离...
2019-02-17 19:48:09
1319
原创 JavaScript轮播图
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>轮播图</title> <style> * { margin: 0p
2019-02-08 11:32:18
260
原创 Leecode Add Two Numbers(Java版)
/** * * @author WF帆少 * @微信 13025261795 * */class Solution { public static int getListNodeLength(ListNode l) { int length = 0; while (l != null) { length++; l = l.next; } retur...
2019-01-21 10:34:28
241
原创 Leecode Two Sum(Java版)
/** * @author WF帆少 * @微信 13025261795 */class Solution { public int[] twoSum(int[] nums, int target) { // 声明一个变量来存放nums.length可提高效率 int numsLength = nums.length; int[] in...
2019-01-19 21:49:08
194
原创 HTML与CSS实现淘宝静态页面(参考版)
本文章内容是利用HTML与CSS实现淘宝静态页面,没有js交互,需要相关图片素材的请关注微信公众号“兴耀综合平台”获取效果如下:html代码:<html><head> <title>淘宝网-淘!我喜欢</title> <meta charset="utf-8"> <link rel="styles
2019-01-15 16:19:36
31087
15
原创 spring+springmvc+mybatis+maven入门+实战超详细教程(一)
入门篇本篇文章涉及到的技术有spring、springmvc、mybatis、mysql、xml、maven、jsp、javase、javaweb、eclipse下面开始本篇文章的教程一、新建maven项目一般通过这种方法新建maven项目 假如你的eclipse不能通过上面的方法新建maven项目,也可以通过下面的方法新建maven项目看到下面的项...
2019-01-05 22:43:29
2113
7
原创 centos安装配置jdk10
1.下载jdk下载2. 解压tar -zxvf jdk-版本-linux-x64.tar.gz3. 接下来就是配置java环境的路径vi /etc/profile或者vim /etc/profile在打开的文件里面的最后添加JAVA_HOME=/usr/local/jdk1.7.0_79/JRE_HOME=$JAVA_HOME/jre #注意 jdk10解压后是没有...
2018-08-21 19:03:19
332
转载 centos7安装mongoDB
安装之前准备工作 环境说明: 1系统虚拟机信息:CentOS7 X86_64位; 2软件及版本:mongodb-linux-x86_64-3.6.3.tgz;MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包,地址如下:mongodb官网,进入官网,如下图所示: 点击Download,进入下载页面: 选择版本:Linux 64-bit legac...
2018-08-16 08:54:52
182
转载 windows下安装python3.x和virtualenv虚拟环境
一、 官网下载安装包: 官网网址:https://www.python.org/ 我下载的是3.6.3版本,如下图: 二、 安装安装包, 1、 直接双击运行 2. 选择Customize installation,一定要勾选Add_Python 3.6 to PATH,防止手工添加环境变量 3.选择安装的属性,Documentation、pip、tcl/tk and IDL...
2018-08-14 13:46:23
11008
原创 centos7 下pycharm无法输入中文问题解决方案
在pycharm.sh脚本中,大约在201行# ---------------------------------------------------------------------# Run the IDE.# --------------------------------------------------------------------- IFS="$(printf...
2018-08-14 13:40:35
4848
转载 centos安装Scrapy
安装相关包sudo yum install python-devel libxml2-devel libxslt-devel bzip2 安装zope-interfacewget https://pypi.python.org/packages/44/af/cea1e18bc0d3be0e0824762d3236f0e61088eeed75287e7b854d65ec9...
2018-08-14 13:39:18
174
转载 centos下python3.7版本使用scrapy遇到invalid syntax
学习python爬虫的时候遇到一个问题在treminal命令行下scrapy startproject python123demoscrapy genspider demo python123.io到最后运行scrapy crawl demo 时出现错误如果出现SyntaxError:invalid syntax,在“from twisted.conch import manh...
2018-08-14 13:34:34
308
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人