自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【资源平台】小程序生成二维码(实践有效)

小程序前端生成二维码

2022-07-08 16:52:18 619 1

原创 Java集成开发工具:eclipse、IDEA

eclipse1.安装我的eclipse是一个解压版的。直接解压就能用。使用当前的这个eclipse的时候,需要计算机上已经安装了JDK,并且bin目录已经配置到path当中。解压之后:eclipse.exe 是启动eclipse开发工具的。2.eclipse工具的使用第一次打开eclipse的时候,会让你选择工作区,工作区就是java代码存放的位置。默认位置:C:\Users\Administrator\eclipse-workspace你可以修改成其他位置,没问题。我这里改一

2022-05-20 22:38:47 558

原创 正则表达式全解(必会)

1.字符组匹配字符组中的任意一个字符/[Pp]ython/g匹配:Python、python注意:字符组只匹配一个,不是同时匹配Pp这两连接的字符, Ppython,只能匹配到后面部分python字符组中的-表示区间范围/[0-9]/g匹配所有数字[A-Za-z]匹配所有字母匹配特殊字符:转义字符 \// 匹配所有字母和 横[A-Za-z\-]匹配所有字母取反:^// 匹配所有 非数字:/[^0-9]/g// 匹配所有 非小写字母:/[^a-z]/g/

2022-04-28 15:50:59 348

原创 小程序登录流程

登录流程三个角色:小程序端微信自己的服务器公司的服务器appId 作用说明appid 是微信账号的唯一标识,这个是固定不变的;如果了解微信公众号开发的就需要注意一下,小程序的appid 和 公众号的appid 是不一致的openidopenid:每一个微信用户的唯一标识openid一般不保存在客户端,一般保存在服务器端。我们自己的服务器会和微信的服务器进行通信。到时候微信的服务器就会返回一个session_key和openid,到时候我们的服务器会把这个openid存到数据库

2022-04-14 11:56:29 1740

原创 装机配置清单

1.显卡品牌:NVIDIA、AMD1.1 NVIDIANVIDA公版显卡主要由NVIDIA独立创造NVIDA非公版显卡NVIDA挑选一群合作伙伴,提供核心技术,让其创造的显卡七彩虹厂家(举例)1.从丐版–>旗舰版:体型增大,散热增强,出场加速频率增高,显卡供电用料更强2.实用性:由于其核心都是3070,因此丐版性价比更高,同样性能下 旗舰版比丐版强5%3.例如:使用3070火神玩游戏,帧数是200,使用3070战俘,帧数是190左右1.2 AMD基本同上1.3

2022-01-24 16:40:12 3711

原创 图片url转base64,base64转file

toBase64(imgUrl) { // 一定要设置为let,不然图片不显示 const image = new Image(); // 解决跨域问题 image.setAttribute('crossOrigin', 'anonymous'); const imageUrl = imgUrl; image.src = imageUrl // image.onload为异步加载 image.onload...

2021-09-23 18:16:33 344

原创 VUE多选按钮变色

selected: [],//选中的服务项目名称 <div class="filter-nav" v-for="(item,index) in navTabr" :key="index" :class="{'active':selected.indexOf(item)!=-1}" @click="active(index,item)"> <div class="bg-box"> <span>{{.

2021-09-16 16:10:09 790

原创 时间戳转换

format(shijianchuo) { var time = new Date(shijianchuo * 1000); var y = time.getFullYear(); var m = time.getMonth() + 1; var d = time.getDate(); var h = time.getHours(); var mm = time.getMinutes(); var s = ti

2021-09-11 11:53:37 112

原创 【Vue】作用域插槽

父组件调用子组件1.在使用子组件的时候在里面插入任何内容,该内容会在子组件的 <slot> 处显示2.如果父组件没有在子组件中传入内容,且插槽有默认内容,则显示默认内容父组件<template> <div> <Children>Test</Children> </div></template>子组件<template> <h1> <slot>.

2021-08-21 15:54:23 187

原创 【项目】创建分支以及合并分支

要创建新功能最好新建一个分支,等开发完成后再合并到主分支上这样会更加干净创建分支在该分之内进行代码编写,正常 commit 不要push即可//创建分支git checkout -b login//查看所有分支git branch合并分支内容功能完成后合并分支,然后push到云端//切换到主分支git checkout master//主动合并分支内容git merge login//推送master到云端git push...

2021-08-19 17:30:12 270

原创 Eslint 语法警告问题

Eslint 语法警告问题在项目根目录中创建一个格式化文件时候的配置文件按快捷键格式化后按照此规则格式// .prettierrc 文件{ "semi": false, //格式化不自动加分号 "singleQuote": true //启动单引号}修改 eslint 校验规则1.复制语法警告的题目2.在 .eslintrc.js 中的 rules 里面复制,让其为 key,其value设置为 off 即可3.重新运行编译'space-before-blocks':'

2021-08-19 17:16:21 285

原创 【项目】密豆

移动端单位换算使用rem单位适配所有机型,计算公式:100px = 1rem创建 rem.js 文件,在html中引入即可var deviceWidth = document.documentElement.clientWidth;if(deviceWidth > 750) deviceWidth = 750;document.documentElement.style.fontSize = deviceWidth / 7.5 + 'px';PC端pc端页面适配使用 vwre

2021-08-17 16:51:55 90

原创 jQuery基础

jQuery1.版本选择看大公司选择什么查看网页源代码,搜索jquery基本使用:1.x1.x的特点1.优点:兼容IE6782.缺点:文件较大2.jQuery的使用步骤1.下载jQuery库——jQuery官网–download–1.x minified–复制链接–右键–另存为–项目文件中2.引入下载的jQuery库——在HTML文件head标签中引入js文件:<script src="../js/jquery-1.12.4.min.js"></script

2021-08-16 15:12:34 195

原创 【打包工具】parcel 和 webpack

原生js项目——parcel//生成项目配置文件npm init -y//安装打包工具npm install --save-dev parcel-bundler//运行项目npx parcel src/index.html//打包发布npx parcel build src/index.html --no-minify --public-url ./webpack//生成配置文件npm init -y//安装yarn add webpack@5 webpack-cli@4 --d

2021-08-14 15:30:14 301

原创 axios请求数据

发送请求接口路径和method类型看接口文档this.$axios.postForm('/goods/goodsDelete', { id:id }) .then(res=>{ if(res.code==this._global.SUCCESS_CODE){ //需要判断请求接口返回参数上是否成功,这个code是后端设置 }else{ this.$mess

2021-07-27 16:58:20 286

原创 【已解决】当出现导入插件出现 “Could not find a declaration file for module ‘插件名‘“

当插件已经下载却还是说找不到解决方案一(实验可行):在 shims-vue.d.ts 文件中加入代码 declare module 'vue-progressbar'方案二(实验未成功):npm i --save-dev @types/vue-progressbar'

2021-07-26 17:42:21 6218 2

原创 常用的CSSreset

* { margin: 0; padding: 0; box-sizing: border-box;}ul,ol { list-style: none;}a { text-decoration: none; color: inherit; &:hover { border-bottom: 1px solid; }}

2021-07-25 16:31:33 254

原创 函数柯里化

柯里化柯里化,是函数式编程的一个重要概念。它既能减少代码冗余,也能增加可读性1.举例一个累加函数sum 是个简单的累加函数,接受3个参数,输出累加的结果。function sum (a, b, c) { console.log(a + b + c);}sum(1, 2, 3); // 6假设sum的前2个参数保持不变,最后一个参数可以随意。那么就会想到,在函数内,是否可以把前2个参数的相加过程,给抽离出来,因为参数都是相同的,没必要每次都做运算——调用的写法可以是这样

2021-07-13 09:25:56 128

原创 async 和 await(详解)

一、async 和 awaitpromise 使用 .then 链式调用,但也是基于回调函数async/await 更加优雅的异步编程的写法1.它是消灭异步回调的终极武器2.它是同步语法,也就是用同步的写法写异步的代码案例1:promise异步加载图片分别使用 .then 和 await 来获取结果区别1.await 完全没有回调函数2.await 是同步写法,异步操作3.await 后面不仅仅可以接 promise对象,还可以接 async 函数//里面函数为AJAX,因此是

2021-07-04 13:38:34 26279 3

原创 async 和 await的用法(记忆版)

一、复习Promise1.初步function 摇骰子(){ return new Promise(()=>{ setTimeout(()=>{ let n = parseInt(Math.random()*6+1,10) // return n 是得不到n的,因为外面还有个return },3000) })}摇骰子() //得到一个promise对象定义一个函数,返回一个promise对象1.就是我给你一个承诺,3s之后会扔骰子

2021-07-04 13:11:03 596

原创 【大屏可视化】大屏适配公式

1.大屏适配公式设计稿尺寸:16:9大屏:显示16:91.如果屏幕很宽,就以高度为基准,左右居中2.如果屏幕很高,就以宽度为基准,上下居中3.保持比例不变形在 head 里用 JS设置 1rem=Wp/100Wp是页面有效宽度2.实践:布局和适配在网站下载设计图之后,在Photoshop中打开1.测量设计图尺寸工具:m 框选——打开窗口–信息——这样可以保证画布大小比例一致2.取色:取色工具1.屏幕大小获取设计图大小:m – ctrl+a1.全选获取设计图尺

2021-06-29 19:23:18 1607 1

原创 React路由:页面跳转

Route之exact页面转跳1.用 Link 标签将内容包起来2.<Link to={'/tags/'+tag}>——后面的tag应该是ID3.点击link标签里面的内容会转跳相应页面,新建一个对应路由即可4.添加样式:Link标签本质 a标签添加路由1.路由的内容不能写死,因为不知道后面用户会添加什么内容2.<Route path="/tags/:tag">——:tag:匹配所有非斜杠的内容,且内容命名为 tag3.问题:如果存在 /tags 的路径,也会

2021-06-22 13:54:18 476

原创 受控组件和非受控组件的区别

受控组件受控组件就是必须要控制它,实时监听给input添加 value={note} 就变成受控组件监听 value 的 onChange 事件,note 改变的时候就 setNote,控制了 input 的读写React的严格模式(<React.StrictMode>)会让 console.log(note)打出两遍,不影响const NoteSection: React.FC = () => { const [note, setNote] = useState('')

2021-06-21 18:34:15 934

原创 Chrome 远程调试

用usb把电脑和手机连接起来确保手机和电脑都有Chromemore tools => Remote devices进入下方链接,这样手机上访问Chrome浏览器的网页就可以从电脑看到点击 inspect,进入的网页相当于是手机页面的控制台...

2021-06-15 18:39:45 250

原创 如何调试(debug)

报错 ‘xxx’ of undefined说明代码中存在:yyy.toString,其中 yyy 是 undefined去文件里面排查,用 console.log

2021-06-15 11:27:48 73

原创 ISO 8601和dayjs

ISO 8601 定义日期和时间的组合表示法合并表示时,要在时间前面加一大写字母T,如要表示北京时间2004年5月3日下午5点30分8秒,可以写成2004-05-03T17:30:08+08:00或20040503T173008+08。d.toISOString()1.得到时间后面的z意思是 zero,是从零时区开始2.和北京时间相对,这个表示标准时间使用...

2021-06-15 08:43:32 571

原创 【项目3】全局数据管理(上)

全局数据管理目前问题:Money和Labels页面在获取标签时分别去localstorage里面取,大家各自为政,因此更新不同步也就是两个组件都是自己fetch到数据,然后parse到新对象解决:让他们复制同一个对象即可1.构造Model将tagListModel和recordListModel内部封装一致分别为:data、create、update、save等2.将数据提到上层Money和Labels的上层是App.vue,再上层是main.ts,负责渲染app的1.在main

2021-06-11 07:25:25 325

原创 custom.d.ts文件bug

问题当 custom.d.ts 里面有 import 时就无法自动导入其他API解决:将 custom.d.ts 拆成两个文件一个叫 global.d.ts 里面不写 import一个叫 custom.d.ts 里面写 import

2021-06-11 07:18:18 276

原创 store的bug之值与地址

值和地址的区别store对象里面有值和API当外部进行赋值时:count = store.count:将值复制给countrecordList = store.recordList:将地址复制给recordList问题:1.当store里面的count发生变化时,外部的count并没有任何改变2.当store里面的recordList发生变化时,外部recordList发生变化解决:1.不要用data来获取count,因为它只获取一遍,要用computed——computed:当内部数

2021-06-11 07:15:22 141

原创 TypeScript知识点

1.Typescript中的as、问号与感叹号as和!用于属性的读取,都可以缩小类型检查范围,都做判空用途时是等价的。只是!具体用于告知编译器此值不可能为空值(null和undefined),而as不限于此。?可用于属性的定义和读取,读取时告诉编译器此值可能为空值(null和undefined),需要做判断。...

2021-06-07 11:45:45 108

原创 3-4 Node.js部署

创建应用账户1.创建新用户ssh root@aliyun1:登陆root账户它权限很高,相当于Windows的administrator,一旦被攻克…因此,需要再次创建一个账户创建账户1.账户名:xxx(自定义,可以是名字拼音全小写)2.密码:和之前root的密码一样再次登陆:ssh xxx@aliyun1这个权限要比root低很多,不是自己的文件都不能动1.cd ~2.pwd给xxx账户添加权限1.登陆root2.adduser xxx sudo2.sudo 是什么

2021-06-01 18:44:06 127

原创 关于 github

git reset --hard:退回到之前版本git commit --no-verify:忽略代码错误,直接提交git push -f:强制提交当前代码

2021-05-31 18:50:10 75

原创 深拷贝和浅拷贝的区别

1. 区别浅拷贝只是增加了一个指针指向已存在的内存地址,仅仅是指向被复制的内存地址,如果原地址发生改变,那么浅复制出来的对象也会相应的改变。深拷贝是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存。”2. JS 中深拷贝的几种实现方法使用递归的方式实现深拷贝通过 JSON 对象实现深拷贝通过jQuery的extend方法实现深拷贝Object.assign(), slice, concat拷贝当对象中只有一级属性,没有二级属性的时候,此方法为深拷贝,但是对象中有对

2021-05-31 11:08:50 148

原创 substring()、substr()、slice()三者的区别

1.substring应用类型:stringsubstring(indexstart,indexend) 方法返回一个字符串在开始索引到结束索引之间的一个子集返回内容:[1,3)当 indexstart > indexend,则默认反向取负数任意参数小于0,则被当做02.substr应用类型:stringstr(start,length)取负数1.当start为负数:start=length+start2.length为负数:返回空字符串3.slice应用类型:s

2021-05-30 20:01:50 160

原创 SVG 的两个坑

问题1:svg文件icon自带颜色无法渲染导入的SVG文件其实是XML语句如果文件里path标签里面,icon本身自带了颜色(fill='red'),那么标签是没办法改颜色的解决:使用loader,批量删除每个SVG文件的fill1.在Vue.config.js中,添加 svgo-loader——o是优化的缩写——这里修改的内容直接抄代码2.删除fill属性3.安装loader:yarn add --dev svgo-loader问题2:vue.config.js 报 eslint

2021-05-28 20:50:22 390

原创 如何 import 一个目录

将一个目录里面任意后缀的文件统一全部引入到当前文件<script lang="ts"> let importAll = (requireContext: __WebpackModuleApi.RequireContext) => requireContext.keys().forEach(requireContext); try {importAll(require.context('../assets/icons', true, /\.svg$/));} catch (erro

2021-05-28 18:17:23 808

原创 ESlint报错如何解决

如何解决ESlint报错蓝色波浪线:警告,不用管黄色波浪线:没有加分号,自动格式化红色波浪线:要解决解决方法(核心:还是看提示)1.鸵鸟做法(不推荐)关闭WebStrom提示1.将圆拖到none就是不检查,中间就是弱检查关闭命令行检查在文件最上方添加/*eslint-disable*/这样在提交代码的时候ESlint就不会管2.改代码(根据提示)提示:require不是一个import语句解决:不是import就改为import导入即可3.改配置(根据提示)

2021-05-28 17:46:25 3714

原创 虚拟 DOM 和 DOM diff

一、虚拟 DOM1.虚拟DOM的优点减少DOM操作1.虚拟 DOM 可以将多次操作合并为一次操作,比如你添加 1000 个节点,却是一个接一个操作的2.虚拟 DOM 借助 DOM diff 可以把多余的操作省掉,比如你添加1000个节点,其实只有10个是新增的跨平台虚拟DOM 不仅可以变成 DOM,还可以变成小程序、iOS应用、安卓应用,因为虚拟DOM本质上是一个JS对象2.虚拟DOM长什么样React的虚拟DOM表示:一个标签为div,子元素为2个span,class为red,点击

2021-05-27 16:57:48 146 1

原创 Docker 安装的错误

1.error1Error with pre-create check: "This computer is running Hyper-V. VirtualBox won't boot a 64bits VM when Hyper-V is activated. Either use Hyper-V as a driver, or disable the Hyper-V hypervisor. (To skip this check, use --virtualbox-no-vtx-check)"

2021-05-26 15:39:40 1171

原创 async函数、await函数、promise、then四者的关系

async和await要搭配Promise使用, 它进一步极大的改进了Promise的写法1.特点await后面接一个会return new promise的函数并执行它await只能放在async函数里2.案例function 摇色子(){ return new Promise((resolve, reject)=>{ let sino = parseInt(Math.random() * 6 +1) setTimeout(()=>{

2021-05-22 15:44:04 3407

空空如也

空空如也

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

TA关注的人

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