- 博客(23)
- 收藏
- 关注
原创 记录一次项目升级node版本
4. 报错:Syntax Error: Error: ENOENT: no such file or directory, scandir 'D:\FTL-Workspace\project\tms-web\node_modules\node-sass\vendor'添加 npm install eslint @babel/core @babel/eslint-parser --save-dev。// babel-eslint 改为 @babel/eslint-parser。
2023-05-08 11:09:17
531
原创 动态添加el-form表单项且动态增加表单校验,自定义校验
需求:省市放在同一行,且当选择了省才可以出现市的选择框,二者只要出现均为必填。完整代码:<el-form-item> <div slot="label"><span class="require">*</span>省市</div> <el-col :span="8"> <!-- 省 --> <el-form-item prop="province"> <.
2022-02-17 14:02:27
1456
原创 vue导出多个pdf或excel,打包成zip压缩包进行下载
1.有请求接口返回arraybuffer类型的数据(npm: jszip, file-saver)const zip = new JSZip();let promises = [];// 所有下载请求的数组集合const getFile = url => { // 一个http get请求 return new Promise((resolve, reject) => { Vue.http.get(url, {responseType: 'arraybuffer'}).th
2021-11-30 14:24:15
2127
5
原创 el-table表格数据滚动懒加载
mounted () { window.addEventListener('scroll', this.setHeadPosition, true); }destroyed () { window.removeEventListener('scroll', this.setHeadPosition, true);}async setHeadPosition () { const that = this; const dom = that.$refs.table.bodyWr.
2021-11-09 16:28:57
1227
原创 媒体查询:手机端自适应页面
登录页是后来改版加上的,没有用自适应的UI框架。所以用手机浏览器打开是这样,根本没办法登录:然后修改调整了一下:用媒体查询修改样式@media screen and (min-width: 320px)and (max-width: 750px){ h1{ color: #fff; } .bgimg { min-width: 320px;
2020-12-15 10:42:42
579
原创 微信小程序——商品上拉触底加载分页
微信小程序商品分页,直接把项目代码搬过来了 // 上拉触底加载 onReachBottom = function () { if(this.data.page < this.data.lastPage && this.data.pageFlag){ this.rePage() this.data.page += 1 this.setData({ page:this.data.page }) t
2020-11-03 14:16:36
430
原创 ES6之Map和WeakMap
MapObject 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。Map 的键实际上是跟内存地址绑定的,只要内存地址不一样,就视为两个键。这就解决了同名属性碰撞(clash)的问题。如果 Map 的键是一个简单类型的值(数字、字符串、布尔值),则只要两个值严格相等,Map 将其视为一个键,比如0和-0就是一个键,布尔值true和字符串true则是两个不同的键。另外,undefin
2020-09-02 00:04:19
149
原创 ES6之Set和WeakSet
SetSet本身是一个构造函数,用来生成 Set 数据结构。它类似于数组,但是成员的值都是唯一的,没有重复的值。const s = new Set();[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));for (let i of s) { console.log(i); // 2 3 5 4}// 去除数组的重复成员[...new Set(array)]// 去除字符串里面的重复字符[...new Set('ababbc')].jo
2020-08-15 22:20:58
135
原创 ES6之Symbol
JavaScript 原本有六种数据类型,分别是undefined、null、Boolean、String、Number、Object。ES6 引入了一种新的原始数据类型Symbol,它表示独一无二的值。Symbol函数前不能使用new命令,否则会报错。这是因为生成的 Symbol 是一个原始类型的值,不是对象,也不能添加属性。let s = Symbol();typeof s // "symbol"Symbol函数可以接受一个字符串作为参数,表示对 Symbol 实例的描述,主要是为了在控制台显
2020-08-14 23:54:31
133
原创 HTTP协议
HTTP一、简介HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议,它基于TCP/IP通信协议传递数据(HTML 文件, 图片文件, 查询结果等)。超文本传输协议伴随着计算机网络和浏览器的诞生,HTTP1.0 也随之而来,处于计算机网络中的应用层。因为建立在 TCP 协议之上,所以 HTTP 协议的瓶颈及其优化技巧都是基于 TCP 协议本身的特性,例如 tcp 建立连接的 3
2020-08-12 22:52:58
183
原创 ES6解构赋值
数组的解构赋值1、只要等号两边模式相同,左边的变量就会被赋予对应的值。可嵌套,可忽略。let [a, b, c] = [1, 2, 3];2、不完全解构,即等号左边的模式只匹配一部分的等号右边的数组,解构依然可以成功。如果解构不成功,变量的值等于undefined。let [a, [b], d] = [1, [2, 3], 4]a //1b //2c //4如果等号右边不是数组(不是可遍历的结构)将会报错,可以是字符串。Set结构也可以使用数组的解构赋值let [x, y, x] =
2020-08-12 12:09:45
130
原创 let、var、const区别
let1、let声明的变量只在它所在的代码块有效,在代码块之外引用会报错,存在块级作用域2、let不存在变量提升会报错。var存在变量提升,即变量可以在声明之前使用,值为undefined3、let存在暂时性死区,在代码块内使用let声明变量之前,该变量是不可使用的,都属于该变量的“死区”4、let不允许在相同作用域内重复声明同一个变量,var在同一个作用域内声明同一个变量后面会覆盖前面的const1、const用来声明一个常量,一旦声明其值不可更改。所以const在声明的时候必须要初始化,不能
2020-08-12 11:03:08
152
原创 JavaScript之执行上下文和执行上下文栈
执行上下文JavaScript的可执行代码类型:全局代码、函数代码、eval代码当执行到一个函数时就会先进行准备工作,即创建执行上下文,每个执行上下文,都有三个重要属性:变量对象(Variable object,VO)、作用域链(Scope chain)和this。标题JavaScript引擎创建了执行上下文栈(ECS)来管理执行上下文。先定义执行上下文栈是一个数组:ECStack = [];JavaScript开始解释执行代码的时候,最先遇到的就是全局代码,初始化时会向执行上下文栈压入一个全局
2020-08-09 11:36:14
170
原创 虚拟DOM
1、Virtual DOM 作为 Vue.js 框架的核心特性之一,你有考虑过 Vue.js、React 这类的框架为什么要用 Virtual DOM 机制吗?①为了让应用可以更容易的实现跨平台如果我们的代码是直接操作 DOM,那如果换到那些没有 DOM 的环境中呢,比如小程序、移动 App,多一层封装就可以应对环境的变化,对下兼容不同环境,对上提供统一 API,正是因为这一点,我们今天才能看到很多的跨平台解决方案。virtual dom 中根据不同环境,做不同的渲染操作,举个例子,你在 virtual
2020-08-08 20:32:29
130
原创 JavaScript之原型与原型链
原型prototype属性每一个函数都有一个prototype属性,这个属性是一个指针,指向一个对象。这个对象是此函数所有实例化对象的原型。function A() {}// 为原型对象添加方法A.prototype.xxx = function(){}constructor属性原型对象会获得一个constructor属性,此属性是一个指针指向prototype所在的函数对象。__proto__属性调用构造函数创建一个实例对象后,此实例化对象将包含一个指针[[Prototype]],指向
2020-08-06 17:53:32
130
原创 前端项目优化
1、生成打包报告通过可视化的UI面板直接查看报告在可视化的UI面板中,通过控制台和分析面板,可以方便地看到项目中所存在的问题。2、通过 externals 加载外部 CDN(内容分发网络)资源默认情况下,通过 import 语法导入的第三方依赖包,最终会被打包合并到同一个文件中,从而导致打包成功后,单文件体积过大的问题。为了解决上述问题,可以通过 webpack 的 externals 节点,来配置并加载外部的 CDN 资源。凡是声明在externals 中的第三方依赖包,都不会被打包例:co
2020-08-05 21:40:33
202
原创 Vue报错(eslint)
开始写Vue项目,发现它动不动就报错,语法十分严格,这里记录一下遇到的一些错误。Newline required at end of file but not found最后面要空出一行
2020-05-17 15:12:45
2989
原创 Git常用操作
Git命令行操作初始化$ git init 本地库初始化配置$ git config [–global] user.name … 提交代码时用户名$ git config [–global] user.email … 提交代码时用户邮箱$ git config --list 显示当前Git配置$ git config -e [–global] 编辑Git配...
2020-04-21 14:44:37
147
原创 纯CSS画 三角形 原理
前言:面试题里CSS画三角形的出镜率很高,其实答案一搜就有,但在没弄懂原理之前看起来还是不太直观,所以就自己来实践一下。① 写一个div,设置四周不同颜色边框<style> .div{ border-top: 20px solid #809060; border-right: 20px solid #95c23b; borde...
2020-04-06 17:28:45
328
原创 原生js 实现 贪吃蛇小游戏
HTML部分<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>贪...
2020-04-06 16:12:35
230
原创 输入5个字符串,输出其中最大的字符串
#include <stdio.h>#include <string.h >int main(){ int i = 0; char s[80] = {""}, max[80] = {""}; printf("输入五个字符串:\n"); scanf("%s",s); strcpy(max,s); for(i=1; i
2018-02-27 15:43:40
35775
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人