自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MongoDB

要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。● config:当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。由于 MongoDB 是文档型数据库,其中存储的数据就是熟悉的 JSON 格式数据。如果不存在集合,则在您第一次为该集合存储数据时,MongoDB 会创建该集合。有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。● 集合中有不同的文档。...

2022-08-28 18:09:25 357

原创 rxjs

代码】rxjs。

2022-08-02 09:55:13 185 1

转载 js的数组||对象的遍历

添加链接描述

2022-05-02 13:10:04 141

原创 MySql

库的操作查看数据库查看当前数据库管理系统,管理了多少个数据库命令: show databases;show databases;只能看到数据库名。 SQL 语句的命令格式,每一条语句必须以分号结束 ;创建数据库创建一个数据库用于存储数据表。命令:create database 数据库名 【库选项】,【库选项】 charset 字符集 用于设置数据存储时的字符集例子:create database xl charset utf8数据库名可以中文,但不建议。删除数据库将某个数据库从数据

2022-03-07 21:59:55 766 1

原创 pinia

安装npm i pinia导入import { createPinia} from 'pinia'注册 app.use(createPinia())使用index.ts/** * 注册容器 */import { defineStore } from 'pinia'// 定义容器// 参数1:容器的 id,必须唯一,可以理解为就是有名字的模块// 参数2:选项对象export const useMainStore = defineStore('main', { // 类似.

2022-03-01 17:09:27 760 1

原创 服务端渲染nuxt 基础

传统的服务端渲染搜索引擎通过程序获取指定的网页内容(获取得到网页结构的字符串)客户端渲染内容是通过解析执行js获取到网页内容,不利于SEO客户端渲染的缺点首屏渲染慢不利于SEONuxt.js的使用方式1.使用nuxt初始化一个项目2.已有的Node.js服务端项目直接把Nuxt.js当作一个中间件集成到Node Web Server中3.现有的Vue项目更改1.创建目录2.新建package.js文件,配置启动命令 dev:“nuxt”3.安装nuxt npm ..

2021-11-09 23:06:01 287

原创 vue路由的理解以及响应式原理的理解

vue-router创建vue实例时,配置了router选项,此时会给vue实例注入两个属性route(当前路由规则)和route(当前路由规则)和route(当前路由规则)和router(路由对象)使用步骤:1.创建跟路由相关的组件,也就是视图2.注册路由插件import VueRouter from ‘vue-router’Vue.use(VueRouter)3.创建router对象,并配置路由规则const router = new VueRouter({ routes})

2021-10-24 22:44:41 550

原创 webpack

why webpack现代web开发的问题采用模块化开发使用新特性提供效率开发过程中实时监听,热更新编码完成打包压缩优化webpack 功能安装webpack和webpack-cli打包:将不同类型资源按模块处理进行打包静态:打包后最终产出静态资源模块:webpack支持不同规范的模块化开发webpack会默认去项目下的src找index.js,然后对index.js里面的资源进行查找,进行统一打包(ESModule或者commonJS规范的模块都会统一处理),并在项目

2021-09-26 16:36:58 223

原创 模块化规范

模块化规范1.commonJs规范nodejs提出的一种标准,以同步模式加载模块一个文件就是一个模块每个模块都有单独的作用域使用module.exports导出成员通过require函数载入模块node的执行机制是在启动时加载模块,执行过程当中是不需要加载的;如果在浏览器端使用commonJs规范必然会导致效率低下,因为每一次页面加载都会导致大量的同步模式请求出现;所以早期使用的是AMD,相应的推出了require.js,实现的AMD规范AMD require.js约定每个模块必须

2021-09-07 23:19:06 93

原创 gulp注册任务

gulp注册任务// gulp 入口文件//yarn add gulp --devexports.foo = (done)=>{ //执行 yarn gulp foo console.log('foo task working'); done() //标识任务完成}exports.default = (done) =>{ //执行命令 yarn gulp console.log('default task working'); done()}//gu.

2021-08-31 22:59:23 157

原创 gulp自动化构建

const { src,dest,parallel,series , watch} = require('gulp')//每一个插件都需要手动引入,比较麻烦// 通过gulp-load-plugins可以自动引入插件//yarn add gulp-load-plugins --devconst loadPlugins = require('gulp-load-plugins')const plugins = loadPlugins()//不需要手动加载// const plugins.s

2021-08-31 22:57:11 108

原创 Grunt

// yarn add grunt --dev//Grunt 的入口文件// 用于定义一些需要Grunt自动执行的任务// 需要导出一个函数// 此函数接收一个grunt形参,内部提供一些创建任务时可以用到的APImodule.exports = grunt => { // 注册一个任务 grunt.registerTask('foo',()=>{ console.log('hello grunt'); }) //可以注册多个任务 grunt.regis.

2021-08-25 22:57:44 109

原创 自动化构建工具

自动化构建开发阶段写的源代码自动化地转化成生产环境中可以运行地代码或程序,我们把转化过程称之为自动化工作流,脱离运行环境兼容带来地问题NPM Scripts(实现自动化构建最简单的方式)定义与项目开发过程相关的脚本命令Grunt工作过程是基于临时文件的,因此构建速度较慢例如用它完成sass文件的构建,先进行sass文件的编译操作,再自动添加私有属性前缀,最后再压缩代码,整个过程Grunt都会有磁盘读写操作sass在编译完成之后,会将结果写入临时文件,下一个插件再读取这个临时文件

2021-08-23 22:39:40 116

原创 前端工程化

前端工程化解决的问题:ES6新特性,兼容问题使用Less/Sass/postcss增强css的编程性,但是运行环境不能直接支持想要使用模块化的方式提高项目的可维护性但是运行环境不直接支持部署上线前需要手动压缩代码及资源;部署过程需要手动上传代码到服务器多人协作开发,无法硬性统一大家的代码风格工程化表现一切以提高效率 降低成本 质量保证为目的的手段都属于"工程化"一切重复的工作都应该被自动化- 创建项目时使用脚手架- 编码时代码格式化/代码风格校验- 代码提交时Git

2021-08-17 21:14:58 81

原创 内存管理,性能优化

常见GC算法引用计数算法标记清除算法

2021-08-10 22:57:38 160

原创 调用栈执行

一、EC(G)全局执行上下文1.默认情况下浏览器会生成一个全局执行上下文2.默认情况下它会自动出现在栈底(浏览器关闭的时候释放)二、VO(G)全局变量对象--全局执行上下文中的对象三、GO全局对象1.浏览器在加载界面的时候会创建一个空间,它里面存放了一些我们在JS可以直接访问的API(setTimeout setInterval JSON...)2.为了JS方便找到它们,在全局执行上下文当中的VO中定义了一个变量叫window1.浏览器在加载界面后默认情况下会创建 执行环

2021-07-03 22:33:36 132

原创 自定义金额指令(千分位隔开)

/* * @Author: your name * @Date: 2021-07-02 13:31:43 * @LastEditTime: 2021-07-02 14:59:15 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: \hello-world\src\directives.js *//** * @description: * @param {*.

2021-07-02 15:40:27 467

原创 antd总结

antdcolumns中scopedSlots的customRender对应到table中的标签插槽 { title: '地址', dataIndex: 'address', key: 'address', scopedSlots: { customRender: 'address111' }, },//标签结构------------------------------ <span slot="address111" slot-scope="te

2021-07-02 10:48:48 265

原创 对象的增强

字面量const foo = '243'const obj = { bar:123, foo, // method1:function(){ // console.log(121212) // } //简写 method1(){ console.log(12121) } //计算属性 [1+1]:1234, [Math.random()]:222}Object.assign

2021-07-01 23:30:48 91

原创 ES2015

数组的解构const arr = [100,200,300]const [foo,bar,baz] = arrconsole.log(foo,bar,baz) //100 200 300const [, , xx] = arrconsole.log(xx) //300const [...rest] = arrconsole.log(rest); //[100 200 300]const [f,...r] = arrconsole.log(f);//100console.log(

2021-06-30 23:49:37 154

原创 谈谈你是如何理解JS异步编程的,EvenetLoop、消息队列都是做什么的,什么是宏仁务,什么是微任务?

1、JS是单线程语言,指JS执行环境中负责执行代码的线程只有一个。但是JS的运行环境以及JS的某些API在运行时是可以开启新的线程的。当JS代码的执行栈中进行某些耗时任务时,会将这些耗时任务放到WebApi中,等到可以执行的时候就会进入到消息队列。当执行栈空了的时候,EventLoop会调用消息队列中的第一个任务放到执行栈中执行。2、JS执行栈中的任务称为宏仁务,宏仁务执行过程中可以临时加上一些额外需求作为当前任务的微任务,直接在当前任务结束后立即执行。绝大多数异步调用都是作为宏任务执行。Promis

2021-06-28 23:47:24 259

原创 手写promise 基础版

/* 1.promise 就是一个类 在执行这个类的时候 需要传递一个执行器进去 执行器会立即执行 2.promise中有三种状态 分别为fulfilled rejected pending pending -> fulfilled pending -> rejected 一旦状态确定就不可更改 3.resolve和reject函数就是用来更改状态的 resolve:fulfilled.

2021-06-28 22:47:19 78

原创 generator异步方案

//generator异步方案//生成器函数比普通函数多一个*号function * foo(){ console.log('start'); const r = yield 'foo' console.log(r); //bar //使用yield关键字向外返回一个值 //yield并不会像return一样结束函数的执行,而是暂停 //直到外界下一次再次调用next方法,才会继续从yield位置往下执行}/* 调用这个函数并不会立即执行.

2021-06-28 17:33:15 116

原创 promise的基本使用

const promise = new Promise(function(resolve,reject){ //这里用于'兑现'承诺 // resolve(100) //作用:将promise的状态修改为fullfilled //将异步任务的操作结果,通过resolve的参数传递出去 reject(new Error('promise rejected111')) //作用:将promise的状态修改为rejected //参数传递的是个错误.

2021-06-27 00:40:55 136

原创 事件循环 异步函数

//执行栈//同步代码先压栈/弹栈,遇到异步函数也是先压栈setTimeout(),//异步函数内部是异步调用,等待异步调用完成后,放入到消息队列//通过事件循环从消息队列取出回调,压栈执行//可以不停地往消息队列放入回调任务,这些任务会排队等待事件循环console.log('global begin');setTimeout(() => { console.log('time1 invoke');}, 1800);setTimeout(() => { c.

2021-06-26 21:44:35 140 1

原创 task函子

// task处理异步任务const fs = require('fs')const {task} = require('folktale/concurrency/task')const {split,find} = require('lodash/fp')function readFile(filename){ return task(resolver => { fs.readFile(filename,'utf-8',(err,data) => { .

2021-06-26 17:26:38 105

原创 函子Functor

//函子概念://容器:包含值和值的变形关系(这个变形关系就是函数)//函子:是一个特殊的容器,通过一个普通的对象来实现,该对象具有map方法,map方法可以运行一个函数对值进行处理(变形关系)//通过一个类来描述函子class Container { constructor (value) { this._value = value } map (fn){ return new Container(fn(this._value)) .

2021-06-26 13:58:36 87

原创 es6语法 class

class Car { constructor (name,price){ this.name = name this.price = price } a = 1}//可以写死的值可以直接再类里面写复制语句//需要从外面传进来的值,写在constructor里面let p = new Car('奔驰',188)console.log(p); //Car{a: 1, name: "奔驰", price: 188}...

2021-06-26 13:10:10 40

原创 函数组合的概念

//函数组合可以把细粒度的函数重新组合生成一个新的函数//纯函数和柯里化很容易写出洋葱代码h(g(f(x)))//例:获取数组的最后一个元素再转换成大写字母,_.toUpper(_.first(_.reverse(array)))//lodash中的函数组合的方法 _.flowRight()const _ = require('lodash')const reverse = arr = arr.reverse()const first = arr => arr[0]const t.

2021-06-24 22:41:31 97

原创 柯里化理解

//柯里化:// 当一个函数有多个参数的时候先传递一部分参数调用它(这部分参数以后永远不变)// 然后返回一个新的函数接收剩余的参数,返回结果.//普通的纯函数function checkAge (min,age){ return age >= min}// console.log(checkAge(18,20));// console.log(checkAge(18,21));//柯里化function checkAge (base){ return fu.

2021-06-24 22:02:02 53

原创 纯函数以及副作用的理解

//纯函数:相同的输入总是得到相同的输出//slice/splice 纯函数/不纯的函数let arr = [1,2,3,4,5,6,7]//下标0到下标3,不包含3console.log(arr.slice(0,3));// [ 1, 2, 3 ]console.log(arr.slice(0,3));// [ 1, 2, 3 ]console.log(arr.slice(0,3));// [ 1, 2, 3 ]//下标0,三个console.log(arr.splice(0,3));.

2021-06-23 15:27:39 430

原创 闭包的理解

//闭包:一个函数内部返回一个函数,并且这个返回函数内部又访问外部函数的成员//本质:函数在执行的时候,会被放到一个执行栈上,当函数执行完毕后,这个函数以及内部的变量会被释放,但是如果有内部函数引用了外部函数的成员,这个被引用的成员就无法被释放 function makePower(power){ return function(num){ return Math.pow(num,power) } .

2021-06-23 13:21:39 96

原创 函数式编程

//高阶函数 - 函数作为参数//实现forEachfunction forEach(arr,fn){ for(let i = 0;i < arr.length;i++){ fn(arr[i]) }}// 测试forEach// let arr = [1,3,4,6,8]// forEach(arr,function(item){// console.log(item);// })//filterfunction filter(arr,.

2021-06-23 11:28:01 56

空空如也

空空如也

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

TA关注的人

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