自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 node中实现文件夹删除操作

/** * 异步的方法 * fs.mkdirSync fs.mkdir 目录创建是要一层一层的创建 * fs.stat 可以用于描述文件的状态,如果不存文件,就发生错误 * fs.existsSync只有同步方法 异步已经被废弃了 */// const fs = require('fs');// function mkdir(pathStr,cb){// let pathList = pathStr.split('/'); //[a,b,c,d]// // 通过计数方法统计创建文件

2021-04-16 16:04:16 627

原创 stream的学习实现可读流源码

// 可读流实现封装const EventEmitter = require('events')const fs = require('fs')class ReadStream extends EventEmitter{ constructor(path,options={}){ // 继承父类的属性 super() // 读取的路径 this.path = path; // 申请开启的类型权限 t

2021-03-30 16:26:22 111

原创 js高阶函数以及函数柯里化

高阶函数的概念:高阶函数的概念:一个函数返回一个函数一个函数可以参数接受一个函数这两个条件满足任意一个均可 ,promise内部肯定也是回调函数 (内部包含这高阶函数)。应用:扩展函数// 扩展方法 会用到高阶函数 function core(...args){ // 剩余运算符 // .... 前面增加的逻辑 console.log('core',args) // .. 之后增加的逻辑}// 给core函数增加一些额外的逻辑 但是不能更改核心代码Functi

2021-03-30 16:24:14 141

原创 node中fs对象的学习

fs对象的定义fs是fileSystem的简称,表示文件系统,定义了处理文件和文件夹相关的方法。我们读取文件都是读取到的结果都是buffer二进制类型。fs相关APIfs.readFile异步获取文件fs.writeFile异步将buffer数据写入文件中 const fs = require('fs') const path = require('path') fs.readFile(path.resolve(__dirname,'3.fs.js'),function(err,data)

2021-03-25 11:11:33 318

原创 Buffer定义和Buffer相关api

一、前端的文件下载需要转换成二进制在下载。实现文件下载的几个方法:(1)使用Blob对象,创建二进制文件,Blob对象接受两种类型,一种是字符串,一种是二进制片段。 // 前端的文件下载 不是文件 需要转换成二进制在下载 // let str = `<div>hellow zf</div>`; // 转换成二进制 文件类型可以存储文件内容 文件的所有呃逆荣 Bol // 接受的可以是二进制片段也可以是字符串 说明文

2021-03-24 10:42:33 650

原创 手写node中EventEmitter源码

EventEmitter构造函数的原型上有四个api,一个是on方法,用来绑定事件的,一个是emit方法,用来触发事件的,一个是off方法,是用来解绑自定义事件的,一个是once方法,表示只触发一次方法。我们来看源码的实现。// node是基于事件的,内部自己实现了一个发布订阅模式const EventEmitter = require('./events'); // 内置模块 核心let event = new EventEmitter();let util = require('util')

2021-03-24 09:43:32 165

原创 Vue2.0 vue-router源码解析

目录vue-router的两种模式以及相关知识点vue-router本质以及组成部分vue-router是如何监控路由变化的vue-router路由变化页面是如何切换的vue-router全局钩子是如何实现的vue-router的两种模式以及相关知识点我们知道vue-router有两种mode:一种是history,格式是已/开头的。如:/a,/b;一种是hash模式,格式是已#/开头的。如:#/a,#/b;这两种主要都是依据window的history属性来实现的。那么我们回顾一下history属性;

2021-03-23 11:45:58 263

原创 Vue2.0组件渲染原理

目录分析Vue.componet源码子组件是如何显示到页面上面的生成虚拟dom结束以后,该开始生成真实的dom了下面代码正确输出是什么分析Vue.componet源码使用Vue.extend,使用基础 Vue 构造器,创建一个“子类”。参数是一个包含组件选项的对象。实际上就是生成一个继承Vue的子类,从而继承Vue的原型方法,在调用原型上面的_init方法,进行子类的初始化,在手动调用$mount方法进行挂载。而Vue.component内部就是使用Vue.extend方法,我们看一下源码:expo

2021-03-21 20:24:51 480

原创 Vue2.0 computed源码分析

目录一. computed初始化过程二. computed依赖的属性发生变化的过程一. computed初始化过程vue进行页面渲染首先经过属性的初始化,在创建render函数最后进行挂摘阶段。在进行属性初始化的时候,会对计算属性computed进行初始化,主要代码如下:计算属性可以有两种写法一种是函数形式一种是对象形式,对象格式是有get和set属性。对于每一个属性创建一个对应的watcher,并在vue实例对象上面创建_computedWatchers属性用来存放对应计算属性的watcher,

2021-03-20 12:37:47 220

空空如也

空空如也

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

TA关注的人

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