自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜菜鸟的博客

一只前行的蜗牛

  • 博客(193)
  • 资源 (3)
  • 收藏
  • 关注

原创 项目自动化部署

项目自动化部署

2022-08-13 13:02:22 686 1

原创 小程序/uniapp封装请求

手撸一个简单版的axiosexport default class Axios { constructor(config) { if (!Axios.instance) { Axios.instance = this; // 请求配置 this.config = { baseUrl: "", // 基础路径 timeout: 30 * 1000, // 超时时间 ...config, };

2022-03-30 17:28:04 879

原创 uniapp一键发布微信小程序

前言各位小伙伴是不是遇到过uniapp狗血的打包发布流程?哈哈哈哈,我是受不鸟了,公司一套代码发布三个小程序,我人都傻了我能说什么,我只能写个脚本帮我跑这些流程了,不然我真得疯掉,对于公司的这些骚操作,我直呼好家伙啊准备工作微信公众平台开启小程序代码上传在你的根目录下新建keys文件夹和deploy.js将你第一步下载的小程序上传key文件复制到keys文件夹里再keys下新建version.json用于管理版本注:此图里的appid全是乱写的,骚年们不用拿去尝试什么乱七八糟的

2022-03-30 10:54:42 2100 5

原创 centeros安装gitlab

开启配置在CentOS系统上,打开系统防火墙HTTP和SSH的访问[root@code ~]# yum install -y curl policycoreutils-python openssh-server[root@code ~]# systemctl enable sshd[root@code ~]# systemctl start sshd[root@code ~]# firewall-cmd --permanent --add-service=http[root@code ~]#

2021-11-17 14:29:52 1049

原创 CSP安全策略

介绍内容安全策略 (CSP) 是一个附加的安全层,用于帮助检测和缓解某些类型的攻击,包括跨站脚本 (XSS) 和数据注入等攻击。 这些攻击可用于实现从数据窃取到网站破坏或作为恶意软件分发版本等用途。启动方式1. 浏览器客户端启动<meta http-equiv="Content-Security-Policy" content="script-src 'self'">2. 服务器nginx启动 server { listen 3012 ;

2021-07-04 20:02:43 808

原创 vscode使用git详解

vscode左侧低三个侧边栏就是git客户端工具vscode git插件Git Graph可使git log图形化git-commit-plugin可使git commit提交更加规范

2021-06-19 14:25:40 451

原创 小程序区分各个运行环境

// 根据账户信息配置请求地址const accountInfo = wx.getAccountInfoSync();// env类型const env = accountInfo.miniProgram.envVersion;const baseApi = { // 开发版 develop: "https://ddd.123.com", // 体验版 trial: "https://ddd.123.com", // 正式版 release: "https://www.bai

2021-06-18 17:47:43 155

原创 CSS3中linear-gradient详解

linear-gradient定义linear-gradient() 函数用于创建一个表示两种或多种颜色线性渐变的图片看下面用法:/* 从下到上,从蓝色开始渐变、到高度40%位置是绿色渐变开始、最后以红色结束 */linear-gradient(0deg, blue, green 40%, red)注:颜色参数后跟得百分数是指颜色开始渐变得位置...

2021-06-05 18:06:42 1024

原创 react配置less

我使用的是customize-cra重写配置config-overrides.jsconst {override,fixBabelImports,addLessLoader,addWebpackAlias,addDecoratorsLegacy } =require('customize-cra');const path = require("path")module.exports = override( // 针对antd 实现按需打包:根据import来打包 (使用babel-plu

2021-06-01 16:59:36 360

原创 vue-router与react-router-dom的push与replace

vue-router与react-router-dom的push与replace都是跳转路由的方法区别:push方法是在history栈里添加跳转的页面地址;replace方法则是替换掉history栈当前地址为要跳转的地址,跳转前的地址将无法使用goback返回,以为在history栈中已经不存在了...

2021-05-17 14:20:44 756

原创 [antd: Form.Item] `defaultValue` will not work on controlled Field. You should use `initialValues` o

antd禁止在form.item下的组件使用默认属性解决:统一在form组件的initialValues属性里设置

2021-05-14 18:56:35 4459

原创 Uncaught Error: MobX Provider: The set of provided stores has changed

原因Provider组件放在了可能发生变化的父组件上解决将Provider组件套在根组件上,套在非父组件上也行,但是要确保他的父级组件及其之上的组件不能变化(比如不能是路由组件啥的)

2021-05-12 09:15:07 1617

原创 react配置config-overrides.js

下载依赖cnpm i customize-cra react-app-rewired -Scnpm i [email protected] less-loader@5 -Scnpm i babel-plugin-import -S根目录下新建config-overrides.js文件const {override,fixBabelImports,addLessLoader} =require('customize-cra');module.exports = override( // 针对a

2021-05-11 08:47:48 2145

原创 不是内部或外部命令

node安装全局后,使用全局命令报不是内部或外部命令办法:获取全局安装地址npm prefix -g配置系统路径然后就可以了

2021-05-07 15:55:58 223

原创 uniapp操作蓝牙工具类

上代代码蓝牙类import { storage, keys} from '../utils/js/storage.js'import store from '../store/index.js'export default class ble { constructor() { let that = this; // 用户绑定了的设备 this.userBind = []; // 蓝牙开启状态 this.startFlag = false // 蓝牙是否开启适配器

2021-02-24 09:42:54 3807 2

原创 小程序不授权摄像头,手动自己授权后camer打开不了摄像头

原因小程序刚进入,未授权摄像头,camer已经渲染完毕,手动授权摄像头,camer也不会再次渲染解决办法动态渲染camer,动态修改authCamera的值即可 <block wx:if="{{authCamera}}"> <camera binderror="handleCameraError" bindinitdone='bindinitdone' bindstop='bindstop' device-position="{{devicePosition}}" flas

2021-02-24 09:36:16 1760 1

原创 前端下载二进制文件乱码

一:二进制文件转化 downllodFile(fileObj) { downFiles(fileObj.id).then(data=>{ const url = window.URL.createObjectURL(new Blob([data], {type:'application/octet-stream'})) // 二进制文件转化 const link = document.createElement('a') link.style.

2021-02-04 14:57:38 708

原创 echart图表去掉空白部分

有坐标系的图grid: { x: 0, //距离左边 x2: 0, //距离右边 y:0, //距离上边 y2:0,//距离下边 left:0, right:0, top:0, bottom:0 },无坐标系的图以仪表盘为例{ center: ['50%', '54%'], // 图标中心点 radius: '100%', // 大小100%

2021-01-16 14:47:47 3199

原创 请求超时

请求超时原因网络不稳定/网络慢导致请求发送不出去请求已发送,服务器响应速度太慢(请求时间超过xhr,ajax,asiox设置的请求超时时间)浏览器发送了多个请求,达到了浏览器允许的的最大并发请求数,后面的请求将被挂起,等待前面请求结束,于是等着等着就超时了(请求时间超过xhr,ajax,asiox设置的请求超时时间)注:我碰到的就是第三点,请求了一个商品列表,里面的图片都是几m大小,导致浏览器一直在请求图片了,我只能叫后端去压缩图片了,无奈...

2021-01-05 11:40:56 1564

原创 es6 对象的解构赋值使用

用法通常用来深拷贝对象(只能拷贝对象属性是基本数据类型的,属性本身也是个对象或数组的,拷贝的是对象的指针),类似于Object.assign方法不足当需要拷贝整个对象是,他就不适用了,的用JSON。就得使用如下的方法:let obj = JSON.parse(JSON.stringify(obj))...

2021-01-05 09:22:42 121

原创 Invalid prop: custom validator check failed for prop “pagerCount“.

官方文档必须大于5的奇数

2021-01-04 15:10:41 1401

原创 一个好用的工具包

工具地址https://www.u.tools/作用可以各类工具包(甚至可以传把本地接口代理到外网)

2020-12-29 16:25:20 111

原创 uniapp获取当前页(路由)/历史页(路由)

let pages = getCurrentPages() // 获取栈实例let page = pages[pages.length - 1] // 获取当前页面的数据,包含页面路由let prevPage = pages[pages.length - 2] // 获取上个页面的数据,包含页面路由

2020-12-28 13:49:56 8910 1

原创 uniapp 跨域

manifest.json配置即可 "h5": { "devServer": { "port": 85, "disableHostCheck": true, "proxy": { "/dev-api": { "target": "http://XXX", "ch

2020-12-12 14:08:57 263

原创 buildx打包失败

1. 打开错误日志网址2. ctrl+f 全网页搜索error找到错误信息那一条,我这里是appicon集为空,就是没有配置app图标

2020-12-11 09:47:38 1403

原创 vue history模式下页面刷新,地址404

原因vue是单页面应用,history模式路由是通过history.pushState API 实现的,页面刷新时,浏览器是根据请求路径去找对应资源,history模式下得地址自然是找不到对应资源得解决nginx配置代理时,配置一下try_files就行...

2020-12-08 17:49:24 433

原创 vue配置.env.development地址不生效

格式# 开发环境配置ENV = 'development'# 管理系统/开发环境VUE_APP_BASE_API = '/dev-api'# 图片基础路径VUE_APP_BASE_IMG = '/dev-api'注意:路径变量必须得用VUE_APP开头

2020-12-06 17:14:56 7376 1

原创 vue防止多次点击(暴力点击)

工具类noDbClick.jsexport default {}.install = (Vue, options = {}) => { Vue.directive('preventReClick', { inserted(el, binding) { el.addEventListener('click', e => { if (!el.disabled) { el.disabled = true

2020-12-04 14:35:21 1740

原创 js对象拷贝的方法

json转化方法适合情况: JSON对象的深度克隆。方法是先JSON.stringify() 转为json字符串, 再JSON.parse() 转为json数组缺点:  a. 如果你的对象里有函数, 函数无法被拷贝下来  b. 无法拷贝copyObj对象原型链上的属性和方法var obj = { x: 1, y: { a: 1, b: 0, c: [1, 2, 3] }};// 相同的引用var obj2

2020-11-30 09:55:24 2161

原创 element svg-icon使用

注册svg-icon组件,并引入svgimport Vue from 'vue'import SvgIcon from '@/components/SvgIcon'// svg component// register globallyVue.component('svg-icon', SvgIcon)const req = require.context('./svg', false, /\.svg$/)const requireAll = requireContext => req

2020-11-26 09:36:21 6352

原创 vue拖动元素

工具类 drag.jsimport Vue from 'vue'// 使用Vue.directive()定义一个全局指令// 1.参数一:指令的名称,定义时指令前面不需要写v-// 2.参数二:是一个对象,该对象中有相关的操作函数// 3.在调用的时候必须写v-const drag = Vue.directive('drag', { // 1.指令绑定到元素上回立刻执行bind函数,只执行一次 // 2.每个函数中第一个参数永远是el,表示绑定指令的元素,el参数是原生js对象 //

2020-11-25 11:33:59 316

原创 js实现文件下载

1. window.location.hrefwindow.location.href = 'https://*****';2. window.locationwindow.location='https://*****';3. iframefunction(url){ try { var elemIF = document.createElement("iframe"); elemIF.src = url; elemIF.s

2020-11-21 11:33:35 12318

原创 element 自定义内容(插槽)里获取下标

scope.$index :获取当前行的下标scope.row:获取当前行的对象

2020-11-20 15:50:17 4150

原创 html2canvas生成图片显示不全

原因html2canvas只能给屏幕可视范围之内的元素生成图片办法滚动节点,使要生成图片的元素进入可视区(笨办法,不推荐)克隆节点并添加到body,使用克隆节点生成图片 downloadForJS() { // 使用html2canvas 转换html为canvas // 获取节点高度,后面为克隆节点设置高度。 var height = document.querySelector('#canvs').offsetHeight // 克隆节

2020-11-19 15:36:14 7575 1

原创 echart坐标文字显示不全

设置grid属性的left之和bottom值即可

2020-11-17 16:51:40 1859

原创 element-ui 上传组件钩子 添加参数

疑问解答相信不少小伙伴是这样写得:on-success="handleBannerSuccess(index, $event)"但是发现触发不了放,这是为啥呢,原因:element上传组件是绑定属性来重写属性对象(函数)实现钩子的,不是像直接用@on-success这样的方式触发函数实现的解决办法自己在element重写钩子之后再处理一下:on-change="(res, file)=> { return uploadAPPStartImg1(res, file, '自定义参数')}"

2020-11-17 11:38:02 2966 1

原创 uniapp 图片转base64,并抽离成工具类

自己写export const urlTobase64 = (url) => { return new Promise((resolve, reject) => { //#ifdef H5 uni.request({ url: url, method: 'GET', responseType: 'arraybuffer', success: res => { let base64 = wx.arrayBufferToBase64(

2020-11-03 17:31:00 2316

原创 vscode设置代码段

1. 打开编辑器>文件>首选项>用户代码片段>输入要创建的代码类型>会生成一个json文件2. 按语法编写prefix :代码片段名字,即输入此名字就可以调用代码片段。body :这个是代码段的主体.需要编写的代码放在这里,      $1 :生成代码后光标的初始位置.$2 :生成代码后光标的第二个位置,按tab键可进行快速切换,还可以有$3,$4,$5.....${1,字符} :生成代码后光标的初

2020-10-28 16:09:59 4315 1

原创 react-native配置decorators-legacy支持修饰符

1. 下载依赖yarn add @babel/plugin-proposal-decorators//如果是npm 不推荐使用会导致旧包的丢失// npm install --save-dev @babel/plugin-proposal-decorators2. 配置文件babel.config.js中配置插件module.exports = { presets: ['module:metro-react-native-babel-preset'], plugins: [

2020-10-28 15:46:48 519

原创 IO exception while downloading manifest: java.io.IOException: Unable to tunnel through proxy. Proxy

原因你本地gradle配置了下载代理,并且该代理不可用解决办法找到你c盘下的gradle.properties文件注释掉代理配置即可

2020-10-28 15:07:43 11477 2

React Developer Tools.zip

React Developer Tools 4.13.0

2021-05-12

dartsdk.7z

dark的window下的sdk工具包

2020-06-03

ssh框架集合实现登陆操作

使用struts2+spring+hibernate,实现用户登陆功能,功能就一个,架构很全

2019-07-01

空空如也

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

TA关注的人

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