自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(135)
  • 问答 (2)
  • 收藏
  • 关注

原创 【Node.js】session认证原理和JWT认证原理

http协议的无状态性指的是客户端的每次http请求都是独立的,连续多个请求之间没有直接的关系,服务器不会主动保留每次http请求的状态。可以用cookie突破http的无状态性。cookie在身份认证中的作用:客户端第一次请求服务器的时候,服务器通过响应头的形式,向客户端发送一个身份认证的cookie,客户端会自动将cookie保存到浏览器中。随后,在客户端浏览器每次请求服务器的时候,浏览器会自动将身份认证相关的cookie,通过请求头的形式发送给服务器,服务器即可验明客户端的身份。

2022-08-22 10:50:52 408 1

原创 【MySQL】在项目中操作MySQL---简单的增删改查

使用delete语句,会把真正的数据从表中删除掉,为了保险起见,推荐使用标记删除的形式,来模拟删除的动作,所谓的标记删除,就是在表中设置类似于status这样的状态字段,来标记当前这条数据是否被删除。如果执行的是insert into插入语句,则results是一个。插入数据的便捷方式,如果数据对象的每个属性和数据表的字段一一对应。注意因为之前id为4和5的数据删除了,所以id从6开始。执行了update语句之后,得到的结果也是对象。执行的select语句,执行的结果是数组。在项目中操作数据库的。...

2022-08-10 11:01:29 442

原创 【Node.js】解决接口跨域问题(CORS和JSONP)

解决跨域主要方案:使用cors中间件解决跨域问题cors是Express的一个第三方中间件。通过安装和配置cors中间件,可以很方便地解决跨域问题。使用步骤分为如下三步:CORS(Cross-Origin Resource Sharing,跨域资源共享)是由一系列HTTP响应头组成,这些HTTP响应头决定浏览器是否阻止前端JS代码跨域获取资源。接口服务器配置了CORS相关的HTTP响应头,就可以解除浏览器端的跨域访问限制。 CORS的注意事项CORS响应头部Access-Control-Allow-Orig

2022-08-09 11:34:06 697 1

原创 【MySQL】SQL语句

SQL(Structured Query Language) 是结构化查询语言,专门用来访问和处理数据库的编程语言,能够让我们以编程的形式,操作数据库里面的数据。,在select update delete 语句中,都可以使用WHERE子句来限定选择的标准。SELECT语句用于从表中查询数据,执行的结果被存储在一个结果表中(称为结果集)。新建一个SQL窗口, 输入下方代码查询表。INSERT INTO语句用于向数据表中。update语句用于修改表中的数据。新的数据行,语法格式如下。.........

2022-08-09 11:25:16 299

原创 【MySQL】使用MySQL Workbench软件新建表

在传统型数据库中,数据的组织结构分为数据库(database),数据表(table),数据行(row),字段(field)这四大部分。

2022-08-09 10:10:04 8981 2

原创 【Node.js】使用Express编写接口

如果要获取URL-encoded格式的请求体数据,必须要在服务器js文件里配置解析表单数据的中间件。

2022-08-08 10:41:55 310

原创 【Node.js】中间件

中间件(Middleware) ,特指业务流程的中间处理环节Express中间件的调用流程:当一个请求处理时,可以连续调用多个中间件,从而对这次请求进行预处理Express中间件的格式:本质上就是一个function处理函数,下图为官网的介绍中间件函数的形参列表中,必须包含next参数,而路由处理函数中只包含req和res//常量mw所指向的,就是一个中间件函数console.log('这是一个简单的中间件函数')//注意:在当前中间件的业务处理完毕后,必须调用next()函数。...

2022-08-08 10:08:32 1899

原创 【Node.js】Express路由

在Express中,路由是指客户端的请求与服务器处理函数之间的映射关系在Express中的路由由三部分组成,分别是请求的类型(METHOD)、请求的url地址(PATH)、处理函数(HANDLER)

2022-08-07 20:23:08 283

原创 【Node.js】Express

是基于Node.js平台,快速、开放、极简的Web开发框架。Express的作用和Node.js内置的http模块类似,是专门用来创建Web服务器的。本质:是一个npm上的第三方包,提供快速创建Web服务器的便捷方法。对于前端程序员,最常见的两种Web网站服务器:专门对外提供web网页资源的服务器API接口服务器:专门对外提供API接口的服务器Express - 基于 Node.js 平台的 web 应用开发框架 - Express 中文文档 | Express 中文网。......

2022-08-07 15:52:38 299 2

原创 【Node.js】npm和包

包管理工具 Node Package Manager 这个包管理工具随Node.js安装包一起被安装到用户的电脑上。读取到记录的所有依赖包名称和版本号之后,npm包管理工具会把这些包一次性下载到项目中。这个小工具,利用nrm提供的终端命令,可以快速查看和切换下包的镜像源。package.json中的dependencies节点。执行npm install 命令时,npm包管理工具会。下包的镜像源,指的就是下包的服务器地址。为了更方便的切换下包的镜像源,可以安装。下载包 国外的。.....

2022-08-06 17:04:35 181

原创 【Node.js】模块化、module对象、module.exports对象和CommonJS模块化规范

由第三方开发出来的模块,并非官方提供的内置模块,也不是用户创建的自定义模块,使用前需要先下载)内置模块是由Node.js官方提供的,例如fs、path、http等)(用户创建的每个 .js文件,都是自定义模块)方法,就可以加载需要的各种模块。根据模块来源的不同,分为3类。......

2022-08-06 15:42:53 585

原创 【Node.js】时钟案例---实现clock时钟的web服务器

直接在地址栏输入127.0.0.1:3000就可以出现页面,但是会失败,需要再后面加上地址,比如/clock/index.html 就会出现页面。打开开发者工具,也可以看到三个文件都被请求到。服务器充当的角色就是字符串的搬运工。...

2022-08-06 14:50:55 482

原创 【Node.js】时钟案例---将一个网页分别拆分成css、html和js文件

案例的实现步骤创建两个正则表达式,分别匹配和标签使用fs模块,读取需要被处理的html文件自定义resolveCSS文件,来写入index.css样式文件自定义resolveJS文件,来写入index.js文件自定义resolveHTML文件,来写入index.html文件...

2022-08-06 10:01:52 324

原创 【Node.js】path模块处理路径问题

路径拼接:path模块是nodejs官方提佛那个的用来处理路径的模块方法:用来将多个路径片段拼接成一个完整的路径字符串方法:用来从路径字符串中,将文件名解析出来方法:可以获取路径中的扩展名方法使用之前,需要先导入path模块。...

2022-08-05 10:13:52 302

原创 【ECharts】ECharts基本使用和图表的展示

1、首先在文件中引入ECharts的依赖包可以通过 BootCDN安装BootCDN - Bootstrap 中文网开源项目免费 CDN 加速服务2、准备一个容器:然后就可以通过 echarts.init 方法初始化一个 echarts 实例并通过 setOption 方法生成一个简单的柱状图,下面是完整代码。各种配置项可以查官网的手册:Documentation - Apache ECharts 只需要准备两个容器 只需要在series里设置多个类型的图标即可:.........

2022-07-13 18:04:00 1057

原创 【canvas】canvas和svg基本使用

canvas是HTML5的新特性,它允许我们使用canvas元素在网页上通过Javascript绘制图像canvas标签特点 绘制出的图形,并不是DOM,只有一个DOM那就是canvas,看到的都是像素点。参数:x为到画布左边的距离,y为到画布上边的距离。w为矩形的宽度,h为矩形的高度。第一种是根据轮廓画出矩形,第二种是可以填充颜色的矩形。 清除画布的参数:第一个参数是x距离,第二个是y距离,第三个是清除的宽度,第四个是清除的高度。.........

2022-07-13 14:06:33 1095

原创 【Vue项目笔记心得】深度选择器

对于某一个组件,如果style添加上scoped属性,给当前子组件的结构中都添加上一个data-v-xxxx自定的属性。 vue是通过属性选择器给需要添加的元素加上样式。scoped作用:只对当前的组件有用(样式) 在父组件中再添加一个子组件,子组件的根标签,会拥有父组件当中的自定义属性。 注意下面只有div标签有data-v-7ba5b90属性: 如果 子组件的根节点,和父组件中书写的样式相同,也会添加上相应的样式。这里h3也就相当于根标签了,也具有父组件的data-v-7ba5b90属性:

2022-07-13 10:32:54 2115

原创 【JS算法】数组的各种方法在增删改查的重要作用(写后台管理的心得总结)

删除数据 pop()、shift()、slice()、splice()修改数据 filter()、reverse()查找数据 every()、some()、indexOf、lastIndexOf()、map()、forEach()push():在数组末尾插入数据下面的例子都是将新的属性添加到原来的数据中: unshift():在数组开头插入数据 pop():从数组末尾删除数据 shift():删除数组开头的数据 slice():...

2022-07-11 10:37:45 141

原创 【Vue-Element UI】三级表单可选框以及显示、修改和删除表单属性

这里是后台管理系统的三级选择器,只有当第一级分类选中属性时,第二个才能选,以此类推。Element ui里面的表单选择器:组件 | Element这里用到的Form属性: inline属性可以让表单域变为行内的表单域 inline为true代表的是行内表单,代表一行可以放置多个表单元素model属性为表单的数据对象这......

2022-07-07 21:15:24 2540

原创 【JS算法】 排序算法及性能汇总

冒泡排序比较所有相邻的两个项,如果第一个比第二个大,则交换它们选择排序算法是一种原址比较算法,找到数据结构中的最小值并将其放到第一位,接着找到第二小的值并将其放到第二位。插入排序每次排一个数组项,以此方式构建最后的排序数组。假定第一项已经排序了,接着它和第二项进行比较,判断第二项是待在原位还是插到第一项之前呢。这样,头两项......

2022-07-06 10:33:28 415

原创 【Vue3】Fragment组件、Teleport组件和Suspense组件

在Vue2中,组件必须有一个根标签在Vue3中:组件可以没有根标签,内部会将多个标签包含在一个Fragment虚拟元素中好处:减少标签层次,减少内侧占用 是一种能够将我们的组件html结构移动到指定位置的技术Suspense组件等待异步组件时渲染一些后备内容,获得更好的用户体验使用步骤:异步引入组件:使用suspense包裹组件,并配置好default与fallback...

2022-07-01 15:28:14 865

原创 【Vue3】shallowReactive和shallowRef、readonly 和 shallowReadonly、toRaw和markRaw、customRef、provide和inject

响应式数据的判断shallow Reactive:只处理对象最外层属性的响应式(浅响应式)shallowRef:只处理基本数据类型的响应式,不进行对象的响应式处理什么时候使用: 如果有一个对象数据,后续功能不会修改该对象中的属性,而是生新的对象来替换===>shallowReftoRaw:markRaw...

2022-07-01 10:50:18 341

原创 【Vue3】自定义hook函数

1、什么是hook? 本质是一个函数,把setup函数中使用的Composition API进行了封装2、类似于vue2.x中的mixin3、自定义hook的优势:复用代码,让setup中的逻辑更加清楚举例:在HelloWorld中复用hooks文件夹中的usePonit函数...

2022-06-29 10:33:11 551

原创 【Vue3】computed计算属性和watch监视

watch函数与Vue2.x中watch配置功能一致两个小坑:监视reactive定义的响应式数据时,oldValue无法正确获取、强制开启了深度监视(deep配置无效)监视reactive定义的响应式数据中某个属性时:deep配置有效。...

2022-06-29 09:41:22 144

原创 【Vue3】Vue2和Vue3的响应式原理

实现原理:通过Proxy(代理):拦截对象中任意属性的变化,包括:属性值的读写、属性的添加、属性的删除等。通过Reflect(反射):对被代理对象的属性进行操作。

2022-06-28 16:08:26 83

原创 【Vue3】setup、ref函数、reactive函数

1、理解:Vue3中的一个新的配置项,值为一个函数2、setup是所有Composition API(组合API)的“表演舞台”3、组件中所用到的数据、方法等等,都要配置到set up组件中4、setup函数的两种返回值5、注意点:1、尽量不要与VUE2.X配置混用2、setup不能是一个async函数,因为返回值不再是return的对象,而是promise,模板看不到return对象中的属性。举例: ref函数作用:定义一个响应式的数据语法:const xxx =ref (initValue)备

2022-06-28 14:24:02 678

原创 【Git】Git的基本概念,Git的基本操作

目录Git的两个特性 Git的记录快照Git的工作流程 Git的安装及配置Git的基本操作获取Git仓库的两种方式 将尚未进行版本控制的本地目录转换为Git仓库跟踪新文件提交更新对已提交的文件进行修改暂存已修改的文件提交已暂存的文件撤销对文件的修改向暂存区中一次性添加多个文件取消暂存的文件跳过使用暂存区域移除文件忽略文件查看提交历史回退到指定的版本Git之所以快速和高效,主要依赖它的两个特性:传统的版本控制系统(例如SVN)是基于差异的版本控制,他们存储的是一组基本文件和每个文件随时间逐步累积的差异。快照

2022-06-22 15:24:43 183

原创 【Vue-Element UI】表单元素以及表格内项目的添加、修改及删除

完成品牌的添加、修改和删除操作 添加品牌的表单界面,点击添加按钮,出现Dialog对话框,品牌logo部分采用了upload上传 点击修改也会出现上面的对话框 ,点击删除按钮, 出现下面的MessageBox弹框 在data中添加了以下数据添加、修改和删除的API接口 在methods中添加函数调用...

2022-06-13 11:12:56 2108 1

原创 【Vue-Element UI】Element UI做表格和分页器,前后端展示列表数据

目录静态组件界面 1、表格(Table)2、分页器 (Pagination) 3、展示列表数据4、$API表格和分页器外观图: 首先利用ElementUI搭建静态组件界面Element - The world's most popular Vue UI framework主要属性 data:表格组件将来需要展示数据---数组类型, border:给表格设置边框 column属性: label:显示的标题

2022-06-12 16:01:05 2703

原创 【Vue项目心得笔记】自定义事件深入

事件注意事项:事件:系统事件、click、双击、鼠标系列等等事件源、事件类型、事件回调系统事件1、原生的DOM比如button可以绑定系统事件--click单击事件等2、组件标签比如Event1可以绑定系统事件(不起作用,因为属于自定义事件),需要加上.native(可以把自定义事件转化为原生DOM事件) 当前原生DOM绑定click事件,其实是给子组件的根节点绑定了点击事件,利用了事件的委派。但是给原生DOM绑定自定义事件时没有任何意义的,因为没有办法触发$emit函数 EventTest组件

2022-06-11 16:21:46 103

原创 【Vue项目心得笔记】登录与注册(下)---导航守卫(重要)

上篇笔记遇到的问题是,当用户已经登录的时候,就无法再通过login路径前往登录页面。 解决这个问题需要用到全局守卫的前置守卫逻辑有点绕,主要是看用户名和token有没有,用来保证路由跳转的逻辑正确。...

2022-06-05 21:15:53 374 3

原创 【Vue项目心得笔记】登录与注册(上)---token(重要)

登录(重要!!!) 1、登录业务(token)登录之前先注册,通过数据库存储用户信息(名字,密码) 登录成功的时候,后台为了区分用户是谁,服务器下发token【令牌:唯一标识符】。登录成功显示token: 只要有token,就登录成功了。登录完毕后会在home首页显示用户名 当用户登录向服务器发送请求(组件派发action:userInfo),登录成功获取到token,存储于仓库之中(非持久化的),然后路由跳转到home首页。因此在首页当中(mounted)派发action获取用户信息,动态..

2022-06-05 16:48:06 1516 4

原创 【Webpack5笔记】loader的概念以及手写clean-log-loader、banner-loader、babel-loader和file-loader

Loader概念帮助 webpack 将不同类型的文件转换为 webpack 可识别的模块。Loader的执行顺序pre:前置loadernormal:普通loaderinline:内联loaderpost:后置loader执行的优先级:pre>normal>inline>post相同优先级执行顺序为:从右到左,从下到上// 此时loader执行顺序:loader3 - loader2 - loader1module: { rules: [..

2022-06-01 10:23:08 344 1

原创 【Webpack5笔记】Webpack高级配置---优化代码运行性能(Code Split、Preload/Prefetch、Network Cache、Core-js和PWA)

一、Code Split(代码分割)多入口为什么使用:打包代码时会将所有 js 文件打包到一个文件中,体积太大了。我们如果只要渲染首页,就应该只加载首页的 js 文件,其他文件不应该加载。所以我们需要将打包生成的文件进行代码分割,生成多个 js 文件,渲染哪个页面就只加载某个 js 文件,这样加载的资源就少,速度就更快。代码分割(Code Split)主要做了两件事:分割文件:将打包生成的文件进行分割,生成多个 js 文件。 按需加载:需要哪个文件就加载哪个文件。把需要的包下..

2022-05-31 14:38:18 440

原创 【Webpack5笔记】Webpack高级配置---减少代码体积(Tree Shaking、Babel和Image Minimizer )

一、Tree Shaking为什么使用:开发时我们定义了一些工具函数库,或者引用第三方工具函数库或组件库。如果没有特殊处理的话我们打包时会引入整个库,但是实际上可能我们可能只用上极小部分的功能。这样将整个库都打包进来,体积就太大了。Tree Shaking:移除 JavaScript 中的没有使用上的代码它依赖ES MoudleWebpack 已经默认开启了这个功能,无需其他配置二、Babel为什么使用:Babel 为编译的每个文件都插入了辅助代码,使代码体积过大!Babe.

2022-05-30 21:12:35 587 1

原创 【Webpack5笔记】Webpack高级配置---提升打包构建速度(HMR、Oneof、Include/Exclude、Cache和Thead)

一、HotModuleReplacement(HMR/热模块替换)为什么要用到这个(只在开发模式): 开发时修改了其中一个模块代码,Webpack 默认会将所有模块全部重新打包编译,速度很慢。所以当需要做到修改某个模块代码,就只有这个模块代码需要重新打包编译,其他模块不变,这样打包速度就能很快。HMR:在程序运行中,替换、添加或删除模块,而无需重新加载整个页面。基本配置module.exports = { // 其他省略 devServer: { ho...

2022-05-30 20:54:46 702

原创 【Webpack5笔记】Webpack高级配置---提升开发体验

SourceMap Devtool | webpack 中文文档 开发时我们运行的代码是经过 webpack 编译后的,例如下面这个样子:/* * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * This devtool is neither made for production nor for readable output files....

2022-05-30 16:06:41 556 1

原创 【Webpack5笔记】处理打包各种资源(css资源、less资源、图片资源、字体图标、js资源(ESlint和Babel)、html资源)

webpack中文文档webpack 中文网首先安装css-loadernpm install --save-dev css-loader想要webpack打包资源,需要在主文件中引入css文件import css from 'file.css';在webpack.config.js中,因为使用了style-loader,也需要安装npm install style-loadermodule.exports = { module: { rules: [ .

2022-05-30 12:43:18 680 2

原创 【Webpack】webpack5基本配置

5大核心概念1、entry(入口)指示webpack从哪个文件开始打包2、output(输出)指示webpack打包完的文件输出到哪里去,如何命名3、loader(加载器)webpack本身只能处理js、json等资源,其他资源需要借助loader、webpack才能解析4、plugins(插件)扩展webpack的功能5、mode(模式)开发模式:development生产模式:production准备Webpack配置文件在项目根目录中新建webp

2022-05-29 17:03:08 726

原创 【CSS随笔】弹性盒子的flex属性

flex属性用于设置或检索弹性盒模型对象的子元素如何分配空间flex属性是flex-grow、flex-shrink和flex-basis属性的简写属性flex-grow: 可拉伸flex-shrink:可压缩flex-basis: 当前元素的宽度flex默认值:flex-grow:0, flex-shrink:1, flex-basis:autoflex:1 flex-grow:1, flex-shrink:1, flex-basis:0%flex: aut...

2022-05-26 18:13:37 124

空空如也

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

TA关注的人

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