自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

苍山负雪_Stacking

All things are difficult before they are easy!!!

  • 博客(39)
  • 收藏
  • 关注

原创 VueRouter实现原理

VueRouter实现原理+分析

2022-06-06 13:40:26 353 2

原创 e.target.dataset和e.currentTarget.dataset

e.target.dataset和e.currentTarget.dataset

2022-05-15 13:21:55 13746

原创 Vue3中封装BetterScroll2.0实现轮播组件

Vue3封装BetterScroll2.0实现轮播组件

2022-05-13 22:14:10 645

原创 Vue 3模板根支持多个元素,eslint报错,webstorm

vue3支持模板根元素多个,解决eslint报错

2022-05-12 11:54:29 548

原创 08-Functor(函子)

函数式编程之Functor(函子)

2022-05-05 13:45:00 183

原创 07-PointFree编程风格

函数式编程之PointFree编程风格

2022-05-05 08:30:00 89

原创 06-lodash-fp模块

函数式编程之lodash-fp模块

2022-05-04 17:00:00 334

原创 05-函数组合compose

函数式编程之函数组合compose

2022-05-04 14:00:00 314

原创 04-柯里化(Haskell Brooks Curry)

函数式编程之柯里化(Haskell Brooks Curry)

2022-05-04 09:00:00 137

原创 03-纯函数

函数式编程之纯函数

2022-05-04 06:45:00 452

原创 02-闭包

定义:闭包(Closure): 函数和其周围的状态(词法环境)的引用捆绑在一起形成闭包可以在另外一个作用域中调用一个函数的内部函数并访问到该函数的作用域中的成员// 函数作为返回值/**正常情况下,makeFn()里面的msg,调用完会释放掉,makeFn()返回了一个成员,这样不会释放掉,因为外部对内部有引用*/function makeFn(){ let msg = "hello wxh" return function(){ console.log(msg) .

2022-05-04 05:30:00 213

原创 01. 高阶函数

JavaScript函数式编程之高阶函数

2022-05-03 22:55:23 123

原创 03-key的作用与原理

vue源码---关于key的重要性

2022-03-03 22:45:00 674

原创 02-Vue组件data要函数形式

从源码的角度看待data为什么是函数

2022-03-03 21:15:00 463

原创 01-v-if和v-for的优先级

从demo+源码角度看待v-if和v-for的优先级

2022-03-03 20:45:00 96

原创 nest,webstorm,eslint报错问题(已解决)

记录服务端渲染,eslint报错问题网上说修改文件里面的东西,不过我发现我的文件里面和网上的完全不一样,老铁们,退其次求其全 把eslint版本改到5.x.x好吧npm install --save-dev eslint@5安装完5.多的之后,需要配置.eslintrc.js还需要安装eslint babel-eslint,不然会报错,别问我怎么知道的npm install eslint babel-eslint -D》》》》大佬总结配置.eslintrc.js文件,齐全最后贴上一张

2021-12-10 00:18:20 1103

原创 面试之查漏补缺1

1.关于css样式穿透问题在我们使用UI库组件的时候,scoped会将样式隔离,有时候需要修改组件样式,不想去除scoped属性造成组件之间的样式覆盖。这时我们可以通过特殊的方式穿透scoped外层容器 >>> 组件 { }外层容器 /deep/ 组件 { }外层容器 ::v-deep 组件 { } // 推荐2.注意sass中 important写法// 对的写法overflow:(hidden !important);text-overflow:(ellipsi

2021-11-05 23:47:43 160 1

原创 设置disabled下的placeholder的样式

简单记录一下,放在vue全局中不要加/deep/input[disabled]{ color:#7A7977; -webkit-opacity:1; -webkit-text-fill-color:#7A7977; opacity:1 !important; background-color: #fff; }::-webkit-input-placeholder{co

2021-10-25 11:39:54 518

原创 sass安装版本问题(vuecli4)

配置移动端,经过万分报错,无意间直接安装sass和sass-loader成功// 这两个版本号“sass”: “^1.43.2”,“sass-loader”: “^7.2.0”,vue.config.jsconst path = require('path')module.exports = { pluginOptions: { 'style-resources-loader': { preProcessor: 'sass', patterns: [

2021-10-17 00:44:50 645 2

原创 vue版本更新文档说明页面

项目需要,写了一个,但是又不要那么完美,记录一下仔细看都能看懂<template> <div id="updateSystem" ref="updateSystem"> <div id="2-2-6" style="position: fixed;top: 0; left:0;right:0" /> <section class="container"> <article class="markdown section

2021-10-12 14:56:57 490

原创 从父组件中获取子组件的值

provide 和 inject 主要在开发高阶插件/组件库时使用。并不推荐用于普通应用程序代码中。

2021-09-27 09:58:02 9128

原创 Git操作

git笔记Git-bash 文件操作相关命令touch:创建文件cat:查看文件less:查看大文本文件vi:visual interfaceEsc 退出到命令模式i 进入插入模式:q 退出vi:w 保存编辑:wq 保存并退出:q! 强制退出不保存修改vi 的所有操作基本全部是命令,这里掌握基本使用基于可以了有时候使用 git commit 进行提交的时候希望能多写几行提交日志,这时候可以省略 -m 参数进入 vi 编辑模式Git基本命令git initgit

2021-09-14 11:54:15 94

转载 lib-flexible适配大屏方案(附移动端适配)

前言 神仙大佬文章  相信大多数移动端前端开发者都是用过lib-flexible来作为移动端适配的解决方案。lib-flexible是淘宝项目组开发出来的一个小插件,属于开源项目,可以在各类项目中引入并使用,为移动端的开发者带来了无穷的便利。  但是,有人提出为什么在屏幕尺寸超出一定分辨率后便不再适配? 今天针对该问题来尝试给出解决方案。关于lib-flexible解读  lib-flexible会自动在html的head中添加一个meta name="viewport"的标签,同时会自动设

2021-09-10 15:48:06 1010

原创 undefined和null区别

undefined派生于nullundefined 是 Undefined 类型。用于表示未定义的变量null 是 Null 类型。 表示空对象指针,null着重于表示对象boolean是Boolean类型所以二者并不等于true false,数据类型不一样在判断对象是否为空指针时用 null 可以表示 false, undefined 则只有 false 情况没有 true 情况 var test1; var test2 = null; console.log(tes

2021-09-01 11:32:45 126

原创 react网易云PC项目搭建配置

0. src下目录划分assets:放我们的静态资源,图片,字体和公共初始样式等common:放我们公共的JS文件components:放我们项目的公共组件pages:放项目的主视图组件router:放项目的路由配置services:网络请求部分store:放redux的相关配置utils:放一些处理我们数据的JS方法1. normalize.css resets.css对项目样式进行重置@import "~antd/dist/antd.css";@import "~normaliz

2021-08-20 17:05:50 215

原创 JavaScript this指向及其修改this指向问题(call apply bind)

1. this指向一、普通函数调用 —指向它的调用者,如果没有调用者则默认指向window.二、对象函数调用 —哪个对象调用,this指向哪里三、构造函数调用四、apply和call调用五、箭头函数调用 — 没有this,默认继承外面的this,默认指向在定义它时所处的对象如果使用node,node中没有window对象,会显示undefinedcall、apply、bind区别call 和 apply 的作用,完全一样,唯一的区别就是在参数上面。call 接收的参数不固定,第一个

2021-08-06 11:01:25 106

原创 JZ矩形覆盖问题

JZ 矩形覆盖描述:我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,从同一个方向看总共有多少种不同的方法?比如n=3时,2*3的矩形块有3种不同的覆盖方法(从同一个方向看):思路:假设:n块矩形有f(n)种覆盖方法。进行逆向分析,要完成最后的搭建有两种可能。第一种情况等价于情形1中阴影部分的n-1块矩形有多少种覆盖方法,为f(n-1);第二种情况等价于情形2中阴影部分的n-2块矩形有多少种覆盖方法,为f(n-2);故f(n) = f

2021-08-04 19:22:53 81

原创 JZ7 斐波那契数列 JavaScript动态规划等总结

斐波那契数列斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)(n>2,n∈N)*一、递归递归:从顶部开始将问题分解,通过解决掉所有分解的小问题来解决整个问题;第一种当n较大时

2021-08-04 16:28:32 199 1

原创 JZ1 二维数组中的查找(JS)

题目描述:JZ1 二维数组中的查找(JS)在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。一、线性搜索利用二维数组由上到下,数组从左到右递增,从上到下递增**那么选取右上角或者左下角的元素a[row][col]与target进行比较,当target小于元素a[row][col]时,那么target必定在元素a所在行的左边,即col–;当

2021-08-03 09:26:40 587

原创 vue+TS+(vue-gird-layout)简单实现撤销功能

公司业务,使用vue-gird-layout实现能够添加模块等各种字段,可以对字段进行修改大小和位置,达到做出PDF,现要求实现撤销到上一步,主要是对数据的处理操作,我测试想了两天,最后被组长一下做出来了了。实现技巧:主要使用两个数组进行保存数据,一个是保存历史状态,,一个是保存现阶段操作老的状态注意点⚠️:存储数组数据的时候必须要使用JSON.parse(JSON.stringify(data)),不然存储的数据会覆盖上一个数组<el-button @click="backOut" :disa

2021-07-07 09:52:00 1122 4

原创 Element ui vue2(class-api)+TS 中的表单校验记录

<el-form :model="addForm" :rules="addFormRules" ref="addFormRef"> <el-form-item label="商品名称" prop="goods_name"> <el-input v-model="addForm.goods_name"></el-input> </el-form-item> </el-form>data(){ return.

2021-07-06 23:07:51 695

原创 插件 moment.js和vue中时间过滤器filter,定义全局的

Vue.filter('dateFormat',function(originVal){ const dt = new Date(originVal) const y = dt.getFullYear() const m = (dt.getMonth()+1+'').padStart(2, '0') const d = (dt.getDate()+ '').padStart(2, '0') const hh = (dt.getHours()+'').padStart(2, '0')

2021-07-04 21:32:54 127 1

原创 element UI+Typescript Transfer 穿梭框的使用(右边数据回显问题)

这里的v-model就是右侧数据回显的值,是个回显数据key的数组:data 绑定的数据是全部的数据 也是一个数组,需要在函数data()中声明,而且右侧框中的数据必须是在左侧数据中,否则不会显示(左侧的数据是全部数据,elementUi内部对左侧已经进行去重了)Html代码<el-dialog title="编辑" :visible.sync="changeDialogTableVisible" width="45%"> <span slot="footer" clas

2021-07-02 11:47:25 7254 5

原创 两个数组对象去重,ID相同的

es6的方法,分别去除两个数组中id值为一致的对象。生成两个新数组 let arr1=[{id:1,name:"连某"},{id:2,name:"隆某"}] let arr2=[{id:1,name:"连某"},{id:3,name:"连某"},{id:44,name:"连某"},{id:45,name:"连某"},] let add=arr1.filter(item=>!arr2.some(ele=>ele.id===item.id));

2021-07-01 14:13:20 818

原创 vue2(class-api) + Typescrict 布局用法

作为对照,先回忆一下js在vue2项目中的写法<script>export default{ data(){ return {} }, methods:{}, computed:{}, filters:{}, watch:{}, created:{}}</script>本来vue2是不支持TS的,如果要在项目中使用TS,就需要相应的插件和配置,虽然用起来有点尴尬,但终究也是能用了。TS在vue2项目

2021-07-01 09:08:01 827 3

原创 element 表格 最后一行合计。 合并单元格方法

效果是最表格最后一行,合并两列arraySpanMethod({ rowIndex, columnIndex }: any) { if (rowIndex === this.tableData.length - 1) { if (columnIndex === 0) { return [1, 2] } else if (columnIndex === 1) { return [0, 0] } } }

2021-06-30 13:40:01 2910 9

原创 axios请求的参数自动拼接到url后面

axios的传参有两种方式:一种是params一种是data而params会默认把 要传的参数拼接到url路径后面

2021-06-30 11:06:54 2957

原创 element input 限制值不为负数且类型为数字

<el-input v-model="fileEndNo" type="number" oninput="value=value.replace(/[^0-9.]/g,'')"></el-input>

2021-06-25 17:30:09 2827

原创 vue2+Ts+elementUI_后台管理系统_Excel文件的上传下载

1.下载功能// 下载需要ID 使用插槽传递ID<el-button @click="downLoadEXCEL(scope.row.id)"></el-button>// 下载功能 downLoadEXCEL(id: number) { downloadMemberExcel(id).then(res => { if (res) { const blob = new Blob([res.data]); /

2021-06-25 09:03:34 311

空空如也

空空如也

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

TA关注的人

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