自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(198)
  • 资源 (1)
  • 收藏
  • 关注

原创 Yarn的安装和使用

yarn是什么yarn是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具 ,正如官方文档中写的,yarn是为了弥补 npm 的一些缺陷而出现的。”这句话让我想起了使用npm时踩过的坑了1、npm install的时候巨慢。特别是新的项目拉下来要等半天(就算切到淘宝的镜像源有时候还要切回去)删除node_modules,重新install的时候依旧如此。2、同一个项目,安装的时候无法保持一致性。由于package.json文件中版本号.

2020-08-20 19:07:44 11605 2

原创 TypeScript-模块化篇

1. 模块的的概念(官方)关于术语的一点说明: 请务必注意一点,TypeScript 1.5里术语名已经发生了变化。 “内部模块”现在称做“命名空间”。 “外部模块”现在则简称为“模块” 模块在其自身的作用域里执行,而不是在全局作用域里;这意味着定义在一个模块里的变量,函数,类等等在模块外部是不可见的,除非你明确地使用export形式之一导出它们。 相反,如果想使用其它模块导出的变量,函数,类,接口等的时候,你必须要导入它们,可以使用 import形式之一。2. 模块的概念(自己理解).

2020-07-26 10:28:22 11478 1

原创 TypeScript-命名空间篇

简介命名空间: 在代码量较大的情况下,为了避免各种变量命名相冲突,可将相似功能的函数、类、接口等放置到命名空间内 同Java的包、.Net的命名空间一样,TypeScript的命名空间可以将代码包裹起来, 只对外暴露需要在外部访问的对象。命名空间内的对象通过export关键字对外暴露。 命名空间和模块的区别: 命名空间:内部模块,主要用于组织代码,避免命名冲突。 模 块:ts的外部模块的简称,侧重代码的复用,一个模块里可能会有多个命名空间。 使用namespa.

2020-07-25 11:04:30 15296

原创 TypeScript-泛型篇

1. 什么是泛型泛型:软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性。 组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能。在像C#和Java这样的语言中,可以使用泛型来创建可重用的组件,一个组件可以支持多种类型的数据。 这样用户就可以以自己的数据类型来使用组件。 通俗理解:泛型就是解决 类 接口 方法的复用性、以及对不特定数据类型的支持(类型校验) //<任意字母即可> 一般使用T 形参的类型和返回值一般也是.

2020-07-25 09:56:11 10471

原创 TypeScript-多态篇

TypeScript中的多态//多态:父类定义一个方法不去实现,让继承它的子类去实现 每一个子类有不同的表现 //多态属于继承class Animal { name: string = 'm'; constructor(name: string) { } eat() { console.log(`这是吃的方法`); }} class Dog extends Animal { constructor(name: string) { super(name); .

2020-07-24 11:05:00 12966

原创 Typescript-class类篇

TypeScript中的类与ES6一致class Person { name: string;//声明类型 前面省略了关键字 public age: number; constructor(name: string, age: number) {//构造函数 实例化类的时候触发的方法 this.age = age; this.name = name; } getName(name: string): void { this.name = n.

2020-07-23 09:54:51 10455

原创 TypeScript-interface接口篇

简介接口的作用:在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用。接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不关心这些类里方法的实现细节,它只规定这批类里必须提供某些方法,提供这些方法的类就可以满足实际需要。 typescrip中的接口类似于java,同时还增加了更灵活的接口类型,包括属性、函数、可索引和类等。定义标准。1、属性接口 定义接口 interface fullName {.

2020-07-22 17:53:05 11058

原创 Typescript-函数篇

TypeScript中函数的定义和使用1. 声明一个函数约束其传参类型,以及返回值类型 传入两个参数,没有返回值const fun1 = (key: string, value: number): void => { console.log(key, value);//"Typescript",100};fun1("Typescript", 100);2.TypeScript中的函数配置可选参数,在ES5或者ES6中函数中的实参可以不传递进去,但是在TS中必须传递进去,如果需要设.

2020-07-17 09:56:14 14440 1

原创 Typescript-基础篇

1. 什么是TypescriptTypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个严格超集,并添加了可选的静态类型和使用看起来像基于类的面向对象编程语法操作 Prototype。C#的首席架构师以及 Delphi 和 Turbo Pascal 的创始人安德斯·海尔斯伯格参与了 TypeScript 的开发。TypeScript 设计目标是开发大型应用,然后转译成 JavaScript。由于 TypeScript 是 JavaScript 的严格超集.

2020-07-16 21:34:42 11771

原创 Vuex由浅入深

1. vuex简介vuex是专门用来管理vue.js应用程序中状态的一个插件。它的作用是将应用中的所有状态都放在一起,集中式来管理。需要声明的是,这里所说的状态指的是vue组件中data里面的属性。了解vue的人应该是明白data是怎么回事的吧,如果不懂的话,建议先学完vue的基础知识再看vuex。2. vuex的组成结构示意图vuex的特点是把数据单独隔离,形成一棵树状图。单独隔离就意味着...

2020-05-03 21:06:27 18843

原创 ES6从入门到入狱-Symbol篇

ES6中的Symbol1. symbol的由来ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。这就是 ES6 引入Symbol的原因。ES6 引入了一种新的原始数据类型Sym...

2020-04-11 10:59:13 14742

原创 ES6从入门到入狱-模块篇

概念在之前的javascript中是没有模块化概念的。如果要进行模块化操作,需要引入第三方的类库。随着技术的发展,前后端分离,前端的业务变的越来越复杂化。直至ES6带来了模块化,才让javascript第一次支持了module。ES6的模块化分为导出(export)与导入(import)两个模块。介绍1. 导出模块和引入模块在ES6中每一个模块即是一个文件,在文件中定义的变量,函数,对象在...

2020-04-10 10:52:31 18748

原创 Vue指令大全

vue 的常见指令v-text 解析文本数据绑定标签,将vue对象data中的属性绑定给对应的标签作为内容显示出来,类似js的text属性;v-html 解析html标签类似v-text标签,他是将data的属性作为html语法输出,类似js中的innerHTML属性;v-on 绑定事件 函数必须写在methods里面 ,@click (简写方式)v-on主要用来监听dom...

2020-02-23 23:38:09 17281

原创 jQuery ajax和axios、ES6之fetch的区别及优缺点

1. 1.jQuery ajax具体表现形式$.ajax({ type: 'get', url: url, data: data, dataType: dataType, success: function (response) { console.log(response) }, error: function (error) { ...

2020-02-21 14:23:39 14147 1

原创 ECMAScript中的浅拷贝和深拷贝

一.什么是浅拷贝,什么是深拷贝浅拷贝:浅拷贝是将原始对象中的数据型字段拷贝到新对象中去,将引用型字段的“引用”复制到新对象中去,不把“引用的对象”复制进去,所以原始对象和新对象引用同一对象,新对象中的引用型字段发生变化会导致原始对象中的对应字段也发生变化。深拷贝:深拷贝:深拷贝是在引用方面不同,深拷贝就是创建一个新的和原始字段的内容相同的字段,是两个一样大的数据段,所以两者的引用是不同的,之后...

2020-02-07 19:09:27 13816 1

原创 express简介

express 简介

2022-06-03 16:27:24 707

原创 防抖函数和节流函数的介绍和应用

防抖函数和节流函数

2022-06-02 21:31:24 439

原创 Ant Design Vue 组件引入神奇操作

开门见山在使用Ant Design Vue 组件的时候,一般来说按需引入需要,每个组件单独引入单独use 看起来很丑 也很麻烦 这里呢提供了一个新的操作代码演示/** * 该文件是为了按需加载,剔除掉了一些不需要的框架组件。 * 减少了编译支持库包大小 * * 当需要更多组件依赖时,在该文件加入即可 */import Vue from 'vue'import { ConfigProvider, Layout, Input, InputNumber, Butto.

2021-04-29 15:33:08 1182

原创 Gitlab项目的创建,用户组分配,项目的克隆提交

开门见山首先登陆gitlab,地址是ip+端口。点击register注册。填入用户名。邮箱可以随便填写,不需要验证。这样我们为我们的项目组的一个成员注册了一个账号,后期将把这个账户分配给辰风,用于克隆项目,提交代码,等一系列操作1.注册注册成功后就要创建项目,这时用root登录gitlab并创建项目,点击create a project创建完项目后点击左侧的seetings-->members。select members to invite 是选择要邀请的成员。把che.

2021-04-23 17:59:12 649

原创 Gitlab的安装

开门见山Gitlab拥有与github相似的功能。在本地服务器搭建gitlab后,可以将代码托管到服务器的仓库上。通过使用git小乌龟,就可以实现代码的克隆和拉取。通过为不同人员分配账号密码,就可以让项目组成员合作开发新项目。准备工作:安装VMware Workstation Pro虚拟机。下载镜像文件centos6或者centos7,6,和7的命令是不一样的,建议下载centos7.比较新。然后安装。虚拟机的内存必须保证至少4G,低于2G无法安装gitlab。一、安装gitlab1..

2021-04-23 16:39:20 119

原创 Element-ui 组件全局引入简写

简介element-ui项目开发过程中,需要在main.js中,需要引用element-ui中的组件引用一个写一个 这样看起来很丑也很恶心,看起来很烦,这里呢给大家带来一个新鲜的套路上代码import { Button, Select, Aside, Main, Container, Header, Menu, MenuItem, MenuItemGroup, Submenu, Breadcrumb, BreadcrumbItem, Drop.

2021-04-16 12:06:29 228

原创 2021年4月1日北京丰升科技有限公司前端笔试复盘

本篇文章主要是面试复盘仅供大家参考1.什么是跨域 怎么解决跨域跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。例如:a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源。注意:跨域限制访问,其实是浏览器的限制。理解这一点很重要 同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生跨域;解决.

2021-04-02 14:53:44 1152 1

原创 vue项目封装axios

开门见山本篇文章主要是vue项目封装axios,希望可以帮助到大家代码演示import axios from "axios";//环境的切换;if (process.env.NODE_ENV === "development") { axios.defaults.baseURL = "";} else if (process.env.NODE_ENV === "debug") { axios.defaults.baseURL = "";} else if (process.env.

2021-03-24 18:56:27 235

原创 使用koa编写路由接口

开门见山本篇文章主要使用koa编写路由接口 希望可以帮助到大家代码演示const Koa = require('koa');const Router = require('koa-router');const router = new Router();const app = new Koa();router.get('/', async (ctx) => { ctx.body = "这是首页"})router.get('/news', async (ctx).

2021-03-24 18:13:15 235

原创 使用koa上线Vue项目

开门见山本篇文章主要是介绍使用koa上线Vue项目,希望可以帮助到大家安装依赖cnpm i koa koa-static http-proxy-middleware koa2-connect代码演示const path = require('path')const Koa = require('koa')const static = require('koa-static')const { createProxyMiddleware } = require('http-prox.

2021-03-24 18:00:42 599

原创 使用express上线vue项目

简介本篇文章主要是使用express上线vue项目,希望可以帮助到大家代码演示//安装依赖cnpm i express http-proxy-middleware -D //上代码const express = require("express");const app = express();const path = require("path");path.join(__dirname, "../dist");app.use(express.static(path.join(_.

2021-03-24 17:56:32 261

原创 前端大厂面试题

前言本篇文章主要一些面试题希望可以帮助到大家面试题2//红灯三秒亮一次, 绿灯一秒亮一次, 黄灯2秒亮一次//实现一个函数,如何让三个灯不断交替重复亮灯? (用Promise实现) 三个亮灯函数已经存在:function red() { console.log("red");}function green() { console.log("green");}function yellow() { console.log("yellow");}// my a.

2021-02-19 12:42:13 357 1

原创 Vue3.0项目文件说明

开门见山本篇文章主要是介绍vue项目的项目文件说明,希望可以帮助到大家public: 公共目录项目开发环境不参与打包构建 此文件夹下面的文件可以直接使用/ + filename访问build 文件夹: 里面是对 webpack 开发和打包的相关设置,包括入口文件、输出文件、使用的模块等;config 文件夹: 主要是指定开发和打包中的静态资源路径、要压缩的文件类型、开发使用的端口号、开发使用虚拟服务器跨域请求 api 等。node_modules: 项目的依赖库;src 文件夹:.

2021-02-09 14:38:42 694 2

原创 手写Vue3.0响应式原理

Vue3.0响应式原理1. 通过使用es6新增的proxy对数据进行劫持2. Vue.js 3.0 对外暴露3个api分别是,reactive,ref,roRefs,通过这三个API实现响应式系统reactive把对象/数组转换成响应式对象/数组,在这个方法内部通过proxy实现数据的劫持 收集依赖和触发更新ref把基本数据转换成响应式的,内部定义一个对象 在这个内部收集依赖和触发更新roRefs作用就是把reactive对象返回的每一个属性转换成类似ref的对象这样可以使用对象的解构和.

2021-02-08 10:07:11 207

原创 cookie-js操作客户端cookie

拨云见日本篇文章主要是介绍在客户端如何操作cookie一、安装npm安装npm install js-cookie --save切换到淘宝镜像源cnpm install js-cookie --saveyarn安装yarn add js-cookie --save项目引用common引用const Cookie = process.client ? require("js-cookie") : undefined;es6引用import Cookies from 'js.

2021-01-02 13:15:24 347

原创 Ubuntu启用root账户并且授权使用SSH访问

拨云见日在Ubuntu刚开始的时候,默认是使用Ubuntu这个账户的,这个账户是普通账户无法删除文件,所以要使用root账户,root账户是超级管理员账户,拥有最高权限,慎用启用root账户1、登陆云服务器2、在终端输入: sudo passwd root # 开启root用户,输入新密码接下来会让你输入新的密码 连续输入两次新密码即可授权root使用SSH登陆使用普通账户登陆:云服务器1、在终端输入:sudo vim /etc/ssh/sshd_config //.

2020-12-29 10:51:10 402

原创 使用SSH链接Linux报错问题

摘要使用ssh链接云服务器的时候,突然报错显示无法链接,搞得我很郁闷,差点怀疑人生报错如下[root@xx]# scp -r CentOS7.2-Mini-Newton.tar.gz newton_install-V1.0.4 / 192.168.122.100:/root/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED.

2020-12-28 20:29:20 286

原创 服务器Ubuntu安装nvm踩坑篇

拨云见日今天给大家带来的在Ubuntu上安装nvm踩坑篇,其实一开始我想的是,安装node,因为是做服务端渲染环境是node,但是我安装node总是失败,索性任性一把安装nvm,使用nvm管理node,我弄了大概3天的时间,期间重装系统,卸载node,一把辛酸泪安装nvm具体步骤1:登陆云服务器这一步基本都没问题,2:输入安装nvm命令:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | .

2020-12-28 18:54:28 2313

原创 nuxt.js页面布局和异步请求数据

前端数据模拟 自定义数据,然后用map做映射也可以做降级

2020-12-20 14:24:55 1247

原创 现代化的服务端渲染-同构渲染

拨云见日本篇文章主要是讲解传统的服务端渲染、客户端渲染,以及同构渲染,希望可以帮助到大家仅限于描述不涉及原理,望大家勿怪渲染什么是渲染,渲染 = 数据和模板添加到一起对于前端开发者来说最常见的场景就是,向后端请求接口,把请求到的数据通过模板绑定语法,将数据绑定到页面中最终呈现给用户,那么这个过程中就叫做渲染,渲染的本质其实就是字符串的替换实现方式有很多种传统的服务端渲染服务端渲染原理/流程:1、客户端发起请求2、服务端响应请求通过数据库查询页面所需数据3、服务端得到所需.

2020-12-20 14:19:53 270

原创 Nuxt.js路由篇

开门见山本篇文章主要是介绍Nuxt.js路由,分别有普通路由、嵌套路由,路由导航,编程式路由,动态路由

2020-12-19 20:15:14 1371 1

原创 手写Vuex-简单实现

开门见山

2020-12-18 14:50:48 145

原创 Vuex补充篇

开门见山本篇文章主要是对Vuex的用法进行补充,希望可以帮助到大家,其中包括更优雅调用mutationstate,getters,严格模式,以及命名空间

2020-12-17 16:23:40 101 1

原创 Vue项目优化

开门见山今天主要是给大家带来vue的项目优化,希望可以帮助到大家代码层面优化1、合理使用v-if和v-show2、区分computed和watch的使用3、v-for 遍历为item添加key4、v-for遍历避免同时使用v-if通过addEventListener添加的事件在组件销毁时要用removeEventListener手动移除这些事件的监听5、图片懒加载6、路由懒加载7、第三方插件按需引入8、SSR服务端渲染,首屏加载速度快,SEo效果好webpack.

2020-12-15 19:20:04 100

原创 手写vueRouter-Hash模式

前言项目开发过程想必大家都用过脚手架,无论是vue-cli、react-create-app,或者是angular-cli,可是大家有没有考虑过这些脚手架是怎么工作的,在本篇文章中,带领大家搭建一个属于自己的脚手架,如有不足之处,还望见谅前期准备全局安装 yeoman安装对应的生成器命令安装配置文件...

2020-12-13 12:42:23 141

手写Promise源码

手动实现Promise源码,实现了Promise核心函数/resolve/reject/race/all/finally希望可以帮助到大家,路漫漫其修远兮,吾将上下而求索,

2020-10-28

空空如也

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

TA关注的人

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