自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vue组件封装技巧

vue组件封装技巧$attrs$listenersinheritAttrs$attrs用途:在对组件进行二次封装的时候会出现孙子组件的传值问题,如果都通过prop进行层层传递太过麻烦定义:包含了父作用域中不被认为 (且不预期为) props 的特性绑定 (class 和 style 除外)。当一个组件没有声明任何 props 时,这里会包含所有父作用域的绑定 (class 和 style 除外),并且可以通过 v-bind=”$attrs” 传入内部组件——在创建更高层次的组件时非常有用。$list

2021-12-04 14:41:21 3584

原创 TS和vue3

TS和vue3学习TS基础基础变量vue3升级vue3的好处setupref、 reactive、toRefscomputed 和 watchproxy生命周期TS基础基础变量语法:例:定义变为的属性为booler, string, number, number[], string[]等等let isDone: boolean = false;let isDone: any[]= [1, ‘aaa’];数组的定义:方法一: let list: number[] = [1, 2, 4];方法二

2021-12-04 14:40:52 3135

原创 js 函数的柯里化和扁平化

转载于:JS函数柯里化柯里化:将函数作为参数或者返回值是函数的函数 function addNum(num) { var sum = num var func = function(v) { sum += v return func }; func.toString = function () { return sum }; retur

2021-05-07 21:57:35 151

原创 前端打印html方法:html2canvas

toImg () { // 转图片打印 const targetDom = document.querySelector("#formContent") const copyDom = targetDom.cloneNode(true) copyDom.style.width = targetDom.scrollWidth + 'px' copyDom.style.height = targetDom.scrollHeight + 'px' document.body.appendChild(co

2021-04-07 16:08:17 507

原创 js对于数组的处理

关于数组的方法新建数组新建:let a = new Array()新建并赋予初始值 let a = new Array(‘x’, ‘y’, ‘z’)新建固定长度并用0进行填充 let a = new Array(10).fill(0)遍历数组forfor (变量 of 对象)for (变量 in 对象)注:for in 遍历会遍历数组的所有可遍历属性forEach()注:返回undefined;入参:1、数组元素 2、下标 3、原数组map()注:返回新数组,如果在遍历中对遍历元素

2021-03-18 22:55:56 320

原创 TS和vue3.0学习笔记

TS和vue3.0TypeScript基础静态类型和对象静态类型函数参数和返回类型的注解数组类型注解元组(数组的加强版)TypeScript安装ts: npm install typescript -g执行:1、需要先转成js文件:tsc demo01.ts生成一个js文件;然后再执行js文件:node demo01.js2、安装npm install -g ts-node,可直接用 ts-node demo01.ts 进行编译基础静态类型和对象静态类型// 定义数据类型变量let book

2021-03-17 09:25:24 2971

原创 使用vue实现防抖

场景:当需要用输入框的输入的值进行实时验证或搜索时// debounce.jsexport const debounce = (() => { let timer = null return (callback, wait) => { clearTimeout(timer) timer = setTimeout(callback, wait) }})()// test.vue<template> <div class="

2021-03-16 22:10:58 6003

原创 websocket

WebSocket 使用ws或wss协议,Websocket是一个持久化的协议,相对于HTTP这种非持久的协议来说。WebSocket API最伟大之处在于服务器和客户端可以在给定的时间范围内的任意时刻,相互推送信息。WebSocket并不限于以Ajax(或XHR)方式通信,因为Ajax技术需要客户端发起请求,而WebSocket服务器和客户端可以彼此相互推送信息;XHR受到域的限制,而WebSocket允许跨域通信。转载:https://www.jianshu.com/p/9d8b2e42328c&l

2021-03-14 20:49:55 237

原创 Object

Object.defineProperty对一个对象的属性进行修改或者新建语法:Object.defineProperty(obj, prop, descriptor)入参说明:对象名称、属性名、属性描述let object1 = {}// 已下两种写法相等Object.defineProperty(object1, "name", {value: "kangkang"}Object.defineProperty(object1, "name", { value: "kangkang",

2021-03-09 21:26:26 156

原创 webpack4.0学习笔记

webpack是啥

2021-03-03 22:21:22 129

原创 vue项目优化

webpack打包配置开启gzip应用场景:项目使用webpack4.x进行打包,打包后静态资源通过nginx转发配置安装包:compression-webpack-pluginvue.config.js配置:const CompressionPlugin = require('compression-webpack-plugin');module.exports = { configureWebpack: config => { // 开发环境不需要gzip

2021-03-03 11:51:10 203

原创 git常用命令

暂存修改代码git add .提交到本地仓库git commit -m “xxx”提交到远程仓库git push更新远程分支git fetch origin --prune查看所有分支git branch -a切换分支git checkout xx-b 可本地新建并切换到新的分支注1:如果git pull拉代码提示no tracking information,则是本地创的分支和远程分支没有建立联系git branch --set-upstream-to origin/注2:

2021-02-28 17:16:46 91

原创 node+express学习笔记

node学习笔记node知识点一些基础知识事件模块(events)使用方法和原理EventEmitter的其他参数Buffer(缓冲区)创建:写入缓冲区node知识点一些基础知识node.js的所有api都支持回调函数,可以实现异步编程,并通过回调函数对值进行处理。一般回调函数是作为最后一个参数传入异步操作;其中接收两个参数;一个是错误对象,另一个才是正确数据const fs = require("fs")// 测试下同步读取文件数据;会先读取data数据,并通过console打印出来;如果是异步

2020-11-21 23:22:39 1207

原创 前端各种原理和源码的学习

promise().then、nextTick()、setTimeout()谁先执行A: promise().then 优先于 nextTick() 优先于 setTimeout()原因: 执行的优先级有区别。微任务:(process.nextTick, Promise.then,Object.observe,MutationObserver)宏任务:script (整体代码),setTimeout, setInterval, setImmediate, I/O, UI renderin;而微.

2020-11-06 17:08:37 569

原创 前端开发随缘笔记

关于element和antd等ui插件的使用多个表单校验使用方法遇到的问题多个表单校验使用方法表单少可以使用参数为flag = true或者false进行判断;或者嵌套调用验证使用保存ref的列表进行循环校验表单多则考虑promise的promise.all()table里面的form表单验证需要:ref="scope.row.code"寻找不唯一的变量(dataTable里面看看);然后循环验证 var form1 = new Promise((resolve, rejec

2020-09-22 15:42:29 1091

原创 /etc家族

bin:全称binary,含义是二进制。该目录中村塾的都是一些二进制文件,文件都是可以被运行的。dev:该目录中主要存放的是外接设备,如键盘,U盘等。但是这些设备不能直接使用,需要挂载(分配盘符)。etc:该目录主要存储一些配置文件。home:表示“家”,即存储了除了root用户以外的所有用户的文件,类似于windows下的当前用户目录。proc:process,表示进程,该目录存储的是l...

2019-10-12 16:06:35 165

原创 shell基础知识

获取执行文件的绝对路径workdir = $(cd $(dirname $0);pwd)`set -e -o pipefail errexit(同-e) 脚本出错即停set -x 会在执行每一行 shell 脚本时,把执行的内容输出来。它可以让你看到当前执行的情况,里面涉及的变量也会被替换成实际的值。特殊变量$!(shell最后运行的后台进程的PID)$$(shell本身pid)...

2019-10-12 14:56:24 213

空空如也

空空如也

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

TA关注的人

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