自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 go练习 day03

【代码】go练习 day03。

2023-08-18 11:23:00 203

原创 go练习 day02

【代码】go练习 day02。

2023-08-11 17:22:30 726

原创 go练习 day01

【代码】go练习 day01。

2023-08-02 10:05:04 472

原创 在vue3 setup下基于Ant Design Vue 实现一个可拖拽行的表格

2、使用ant design vue Table的customRow属性。1、使用原生的drag事件。

2023-03-18 11:05:14 757 1

原创 浏览器渲染原理

浏览器渲染原理

2023-03-05 12:22:27 1236

原创 Vue3之ref与reactive

在Vue3中,ref和reactive都是用来创建响应式数据的方法,但它们之间有一些区别。

2023-02-27 19:36:18 343

原创 Vue Mixins

Mixins 是一种 Vue.js 组件复用的方法,它允许您将一组组件选项合并到一个单独的对象中,然后将其应用于多个组件。

2023-02-27 12:49:07 1113

原创 Vue 组件库 Button实现

Vue Button 组件实现

2023-02-27 10:10:19 197

原创 实现Vue组件库

Vue组件库是一种常见的前端工具,可以提供可复用的UI组件来简化应用程序的开发和维护。本文将介绍如何实现一个基本的Vue组件库。

2023-02-24 08:45:26 1336

原创 【JS排序】

JS排序之快速排序,冒泡排序,插入排序

2023-02-12 20:49:58 74

原创 Postcss、Postcss-pxtorem、amfe-flexible配置rem自适应模式

大屏自适应方案

2023-01-10 09:27:30 554

原创 UNIAPP之App与webview之间的通信

本文主要用来记录实战中 uniapp与内嵌webview之间的通信

2022-10-19 10:49:47 2387 3

原创 前端自动化构建工具搭建基于Ubuntu20.04:第六步Nginx服务器配置

jenkins构建示例jenkins服务器IP假设为127.0.0.1Nginx服务器IP假设为127.0.0.2jenkins服务器与Nginx服务器实现免密登录# 远程执行命令部署镜像ssh -o StrictHostKeyChecking=no [email protected] "docker pull 127.0.0.1:8082/fe/nginx-fe-$timestamp && \docker stop jenkins-prod && \docker r

2022-03-31 09:31:56 2223

原创 前端自动化构建工具搭建基于Ubuntu20.04:第五步ssh免密登录

jenkins服务器与前端资源运行服务器之间实现免密登录jenkins服务器(A)、前端资源运行服务器(B)生成ssh密钥# 邮箱信息根据自己情况选择 一路回车生成下面的图片内容ssh-keygen -t rsassh-keygen -t rsa -C "[email protected]"访问密钥# 访问ssh目录cd ~/.ssh# 查看目录下的文件 ls# ssh目录下的内容 authorized_keys id_rsa id_rsa.pub known_

2022-03-31 08:58:35 351

原创 前端自动化构建工具搭建基于Ubuntu20.04:第四步nexus搭建

PS:Nexus镜像仓库镜像拉取docker pull sonatype/nexus3容器启动# home文件下新增nexus文件 映射容器里的nexus-datamkdir /home/nexus && chown -R 200 /home/nexus# 运行容器docker run -d -p 8081:8081 -p 8082:8082 \--name nexus \-v /home/nexus:/nexus-data \--restart always \so

2022-03-31 08:43:09 849

原创 前端自动化构建工具搭建基于Ubuntu20.04:第三步jenkins构建示例

PS: 默认docker,jenkins安装处理完成构建示例新建任务丢弃旧的构建 => 2天 5个源码管理: 选择Git, 填写仓库地址和账号, 可直接使用gitlab、github等的账号密码构建环境: 选择Provide Node & npm bin/ folder to PATH 选取对应版本的node构建执行shellset -etimestamp=`date '+%Y%m%d%H%M%S'` # 查看node信息node -vnpm -v# 更改npm源

2022-03-30 17:37:14 228

原创 前端自动化构建工具搭建基于Ubuntu20.04:第二步jenkins安装

PS:默认已安装完docker一、镜像拉取##拉取jenkinsci/blueocean镜像docker pull jenkinsci/blueocean二、运行jenkins容器##启动jenkinsdocker run -u root --name jenkins --restart always -d -p 8080:8080 -p 50000:50000 \ -v /var/jenkins-data:/var/jenkins_home \ -v /var/run/dock

2022-03-30 17:28:13 262

原创 前端自动化构建工具搭建基于Ubuntu20.04:第一步docker安装

PS:前提默认为root权限一: 修改sources.listapt文件一般在服务器/etc目录下ubuntu apt-get源文件修改 `/etc/apt/sources.list`可以先备份源文件内容 `cp /etc/apt/sources.list /etc/apt/sources.list.bak`将下面的信息复制到sources.list文件中vim sources.list 为编辑sources.list文件可以通过`echo "" > sources.list` 清空so

2022-03-30 17:14:35 1200

原创 windows子linux 使用nginx部署前端react项目并实现开机自启动nginx

开启子系统Linux(Windows SubSystem Linux ⇒ WSL)PowerShell中输入Enable-WindowsOptionalFeature-Online-FeatureName Microsoft-Windows-Subsystem-Linux在MicrosoftStore中搜索Ubuntu本人安装的是20.04.4 LTS的版本

2022-03-15 14:26:09 4566

原创 nest access_token、refresh_token实现用户登录及无感刷新

思路用户登录 返回给前端 ACCESS_TOKEN(1h)、REFRESH_TOKEN(7d)、和 ACCESS_TOKEN 的失效时间(1h)其他的接口请求时 携带 ACCESS_TOKENAxios处理:前端根据 ACCESS_TOKEN 的失效时间判断过期或者即将过期, 或者接口返回用户校验失败401的错误,前端向后端发送刷新 REFRESH_TOKEN 的接口刷新 ACCESS_TOKEN、REFRESH_TOKEN后端nestjs:authGuard拦截接口,判断是否需要accessTo

2022-03-07 11:31:36 2374 2

原创 nest 集成redis

使用ioredis安装$ npm install ioredis -D初始化redisimport Redis from 'ioredis';export const REDIS_DB_0 = new Redis({ port: 6379, // Redis port host: '127.0.0.1', // Redis host // family: 4, // 4 (IPv4) or 6 (IPv6) name: 'person', password: '', d

2022-03-02 14:51:45 1253 2

原创 nest 集成mysql typeorm 并实现数据迁移

前提假设本地的mysql环境安装完成1、 安装typeorm和mysql$ npm install --save @nestjs/typeorm typeorm mysql2 nestjs-config2、导入到AppModule中采用的是cofing的模式导入配置信息异步配置参考地址在src目录下创建config文件database.config.tsexport default { type: process.env.DB_TYPE, host: process.env.DB_

2022-03-02 14:45:54 1701

原创 nest 项目初始化及常规操作

nestjs文档参考地址本帖单纯记录自己安装本地开发环境的过程项目起步安装1、通过cli快速搭建项目$ npm i -g @nestjs/cli$ nest new project-name2、nest 快速创建对应文件夹的操作 nest --help显示Usage: nest <command> [options]Options: -v, --version Output the current ver

2022-03-02 14:15:19 692

原创 react-router v6 轻使用

路由使用App.tsximport { BrowserRouter as Router } from "react-router-dom";import { Suspense } from 'react'; // 配合动态加载的路由const App = () => { return ( <Router> <Suspense fallback={<div>222</div>}> {/* 自定义的路

2022-01-20 17:36:53 422

原创 react项目使用husky配合commitlint、prettier、eslint、stylelint

husky官网地址初始化huskynpx husky-init && npm install # npmnpx husky-init && yarn # Yarn 1yarn dlx husky-init --yarn2 && yarn # Yarn 2它将设置husky,修改package.json并创建一个可以编辑的pre-commit钩子。默认情况下,当您提交时,它将运行npm test。要添加另一个钩

2021-12-16 16:11:20 883 1

原创 Recoil初探

第一步 引入Recoil// 在App.tsx文件中 使用RecoilRoot包裹页面内容import { RecoilRoot } from 'recoil'<RecoilRoot> <Provider {...stores}> <Layout> <Suspense fallback={<Loading></Loading>}> <Router> <

2021-10-12 15:23:35 380

原创 树结构数据筛选

const treeData = [ { label: '根目录', value: 1, children: [ { label: '一级目录1', value: 11, children: [ { label: '二级目录1', value: 111, children: [ {

2021-09-24 13:22:42 526

原创 百度文字识别功能 跨域,调用

百度智能云tips: base64图片的前缀要去掉 data:image/jpeg;base64, 需要删除tips: base64图片的前缀要去掉 data:image/jpeg;base64, 需要删除tips: base64图片的前缀要去掉 data:image/jpeg;base64, 需要删除跨域处理// 跨域处理 webpack proxy: { '/baiduApi': { target: 'https://aip.baidubce.com', //访问

2021-06-17 11:26:53 557 2

原创 antd upload自定义上传操作

// Demo <Upload fileList={fileList} listType="picture-card" accept={'.jpg,.png,.jpeg'} name="file" onRemove={fileRemove} data={{ module: 'factory' }} // 上传参数 maxCount={10} customRequest={customRequest} > {fileL.

2021-06-17 10:56:46 2776

原创 canvas 二次贝塞尔曲线处理(备用)

const quadraticBezier = (p0, p1, p2, t) => { var k = 1 - t return k * k * p0 + 2 * k * t * p1 + t * t * p2 } const drawLine = (startX: number, startY: number, percent: number) => { const x = quadraticBezier( dat...

2021-06-08 15:45:55 119

原创 for in和 for of区别

for in遍历对象enumerable为true的键let obj = { name: "zf", age: 10}for (let i in obj) { console.log(i)}// name age// 可通过Object.defineProperty 修改 enumerable属性Object.defineProperty(obj, "name", { enumerable: false })for (let i in obj) { console.log(

2021-03-31 15:28:23 73

原创 Symbol见个面

Symbol.hasInstance判断一个实例是否属于某个类,实例通过instanceof判断, 类通过Symbol.hasInstance判断,可以通过修改类的Symbol.hasInstance函数修改逻辑class Bar{}class Baz extends Bar {}let b = new Baz()console.log(b instanceof Bar) // trueconsole.log(b instanceof Baz) // trueconsole.log(Ba

2021-03-31 11:00:48 60

原创 Symbol.iterator实现for of遍历对象

var people={ name:'test', sex:'male', hobbies:['ball','paint','sing'], [Symbol.iterator](){ const _this=this; const keys = Reflect.ownKeys(_this) // 获取到对象的key值列表 let index=0; return { next(){

2021-03-23 11:30:38 186

原创 剑指offer39.数组中出现次数超过一半的数字 javascript

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。思路: 将数组转换成对象, 将数字本身转成key,将出现次数转成value通过for in循环 找出出现次数大于数组长度一半的键值对 取出目标键/** * @param {number[]} nums * @return {number} */var majorityElement = function(nums) { const obj = {} for

2021-03-22 14:32:40 128

原创 git cz

安装npm install -g commitizen#若速度较慢就用cnpmcnpm install -g commitizen初始化项目进入你想要使用git cz命令的git项目npm init --yes#第二条命令可能需要加入 --forcecommitizen init cz-conventional-changelog --save --save-exact如果上面的操作失败 在package.json中手动插入下面的内容 "config": { "c

2021-03-15 10:30:42 275

原创 合并两个有序链表 javascript

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } *//** * @param {ListNode

2021-03-11 13:46:13 86

原创 有效的括号

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。const map = new Map()map.set(")", "(")map.set("}", "{")map.set("]", "[")var isValid = function(s) { if (s.length % 2) return false let arr = [] l

2021-03-11 13:28:25 41

原创 查找数组里面的重复的元素javascript

const arr = [1, 2, 3, 4, 1, 1, 2]const map = new Map()const target = []for (let i = 0; i < arr.length; i++) { if (map.get(arr[i]) === arr[i] && !target.includes(arr[i])) { target.push(arr[i]) } else { map.set(arr[i], arr[i]) }

2021-03-05 22:17:55 113

原创 剑指offer27.二叉树的镜像 javascript

请完成一个函数,输入一个二叉树,该函数输出它的镜像。4/ \ 2 7/ \ / \1 3 6 9镜像输出:4/ \7 2/ \ / \9 6 3 1/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } *//** * @

2021-02-24 14:57:09 79

原创 剑指offer25.合并两个排序的链表 javascript

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */function ListNode

2021-02-24 14:43:46 104

空空如也

空空如也

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

TA关注的人

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