自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 webpack.config.js的基础配置

``在这里插入代码片/*@Author: your name@Date: 2020-06-01 09:35:50@LastEditTime: 2020-06-01 16:07:18@LastEditors: Please set LastEditors@Description: In User Settings Edit@FilePath: /univue/Users/yangchanghao/code/webpack/webpack.config.js//webpack的5个概念

2020-06-01 22:33:30 619

原创 2023-07-15 c++二维数组

【代码】2023-07-15 c++二维数组。

2023-07-15 17:43:17 167

原创 vue2接入高德地图选择地理位置

web端接入高德地图

2022-11-23 11:31:27 958 1

原创 软件设计师考前100个知识点-摘自希赛网

https://m.educity.cn/rk/2370837.html

2022-10-08 14:48:12 1181 2

原创 js实现css的颜色平滑过渡代码

颜色平滑过渡代码

2022-06-23 16:43:51 612

原创 使用react(umi3)和vue3开发自己的组件库,并发布npm

第一步,我们先来了解一下npm的一些常用指令,和npm的version以及tag// 我们先全局安装nrm包,管理npm的源 npm install nrm -g // nrm 切换官方的源nrm use npm// nrm 添加私有源nrm add [私有源的名称] [源地址]// nrm 删除某个源nrm del [私有源的名称]// npm 注册用户 输入名称,密码,email就行npm adduser// npm登录 输入名称,密码,email就行npm login// 查

2022-03-03 14:27:40 1839 1

原创 ts http请求rsa加密key,ase加密params

import CryptoJS from 'crypto-js';import JsEncrypt from 'jsencrypt';/** 加解密数据类型 */export interface ICryptProps { /** 加密数据 */ requestData: string; /** 加密n位字符串 */ encrypted: string;}/** 加解密模块 */export class CryptUtil { // 公钥 private public

2022-01-28 09:43:26 5393

原创 vue和react(基于umi3)针对webpack-bundle-analyzer的配置

下载依赖npm install cross-env -Syarn add cross-envnpm install webpack-bundle-analyzer -Dyarn add webpack-bundle-analyzer -Dvue 再根目录下的vue.config.js下配置,并配置环境变量和打包指令// package.json// 在根目录设置 .env.test .env.pro 分别代表测试/生产环境的环境变量配置{ "scripts":{ "analy

2022-01-21 09:59:47 1270

原创 react二次封装xlsx.js类实现解析和生成Excel

import XLSX from 'xlsx';export interface Ix2jProps { /** 文件大小 */ size: number; /** 校验文件 */ checked: boolean;}export interface IxlsxJsonProps { /** 表头 */ tableHead: (string | number)[]; /** 表数据 */ tableBody: (string | number)[][];}/*

2022-01-18 11:33:37 762

原创 JavaScript数据结构之二叉搜索树

代码实现/** 树节点 */ class TreeNode { constructor(val) { this.value = val; this.left = null; this.right = null; } } /** 二叉搜索树 */ class Tree { constructor(...args) { this.tr

2021-12-06 11:38:20 612

原创 高阶组件学习(react和vue)

React高阶组件(hooks写法)1.新建高阶组件hoc.tsximport React, { useState } from 'react';export interface IHocProps { hocId: string; name?: string; children?: any;}export const HOC_Wrapper = (Component: Function, type?: string) => { return (props: IHocPr

2021-11-25 11:40:36 557

原创 react利用react-activation实现子路由缓存

1.下载依赖yarn add react-activation2.父路由里的代码import React, { FunctionComponent,cloneElement } from 'react'import Styles from './layout.less'import { IRouteComponentProps } from 'umi'import { Switch, Route } from 'react-router';import KeepAlive, { AliveS

2021-10-27 09:46:10 1525

原创 vue和react(umi)工程中使用webpack-bundle-analyzer分析打包文件

vue工程下载依赖npm install webpack-bundle-analyzer -D2.配置文件vue.config.js,根目录下创建和src同级// vue.config.jsconst { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');module.exports = { ...... ...... ...... configureWebpack:{ plugins: [

2021-10-25 09:51:36 1139

原创 react路由组件缓存实现

该思路适合单页面应用。1.新建一个缓存组件,我们叫它componentCache,其核心方法就是每一个缓存组件都对应一个唯一的id,id都对应挂载再window对象上的productCache属性里,即id为pageA的缓存组件,它的缓存数据再window.productCache.pageA里// componentCache.tsximport React, { FunctionComponent, useEffect, useState } from 'react';import { Reac

2021-09-16 17:21:33 2719

原创 umi使用sass

// 1npm install --save @umijs/plugin-sass// 2npm install --save node-sass sass-loader// 3 umirc.js里配置{ sass: {}}

2021-09-13 16:55:58 296

原创 前端工程(react,vue)每次打包递增版本号

实现改功能需要引入4个必要模块child_process(node 自带)readline(node 自带)cross-env(npm 上下载)fs-jetpack(npm 上下载)在项目根目录下新建文件src/assets/version.json{ "devVersion": "1.0.1", // 开发环境版本号 "testVersion": "1.0.2", // 测试环境版本号 "proVersion": "1.0.3" // 生产环境版本号}根目录下新建文件

2021-09-13 14:18:21 2679 4

原创 Electron初体验

1. 下载必要依赖1.由于Electron依赖国外的源,所以我们需要借助淘宝的源cnmp,不然下载依赖就会有很多坑// npm下载cnpmnpm install -g cnpm --registry=https://registry.npm.taobao.org// 检查cnpm版本cnpm -v2.全局安装electron-builder和electron-packagecnpm install -g electron-buildercnpm install -g electron-pa

2021-09-08 11:44:14 142

原创 git常用指令--不定期更新

同步远程分支到本地: git remote update origin --prune

2021-08-05 10:18:42 218

原创 react路由缓存实现原理

琢磨了很久,如果一个路由里的状态很多,那么如果手动将状态存到redux或者dva或者localStorage里,等路由再次渲染的时候初始化数据是非常麻烦的,但是如果只是将路由的dom节点隐藏,不从dom树中删除,那么就免去了很多数据的存取逻辑,主要的逻辑如下,技术用的是umi+reacthooks+dva+typescript。如果不熟悉umi的项目框架可以先去学习一下umi的基础,再来看这篇文章。创建父路由layouts布局,ui设计稿里所有的页面都是基于这个layouts父路由的子路由,我们再lay

2021-07-05 17:35:31 1281

原创 H5父子窗口通信

1.父窗口向子窗口发送信息 // 父窗口代码 var childWindow = null; if('子窗口是iframe'){ childWindow = document.querySelector('#子窗口iframe的id').contentWindow }else if('子窗口是打开的window'){ childWindow = window.open('子窗口url') } childW

2021-06-18 10:39:07 205

原创 内容超出div宽度后自动换行的css代码

word-wrap: break-word;word-break: break-all;overflow: hidden;

2021-04-27 18:40:32 201

原创 vue利用better-scroll实现上拉加载和下拉刷新

<template> <div class="scroll"> <div class="scroll-content"> <div class="scroll-item" v-for="item in list" :key="item"> 选项{{ item }} </div> <p>{{ addPullUpText }}</p> </div&gt

2021-04-12 16:04:37 283

原创 vue3.x自定义常用指令,react 自定义hooks

copy.ts// 点击拷贝绑定内容import { Toast } from 'vant'const directiveName = 'copy';const directiveFunc = (el: HTMLElement, binding: any) => { el.addEventListener('click', () => { const input = document.createElement('input'); input.

2021-04-08 16:44:19 633

原创 配置umi3.x的webpack的打包参数

如果你的应用部署在域名的子路径上,例如 https://www.your-app.com/foo/,你需要设置 publicPath 为 /foo/,如果同时要兼顾开发环境正常调试,你可以这样配置:1: publicPath: process.env.NODE_ENV === 'production' ? '/foo/' : './'umi打包后的静态文件夹默认是dist,如果你希望静态文件再dist的a文件夹下的b文件夹下,可以配置2: outputPath: 'dist/a/b/'设置路由前缀,

2021-04-06 11:22:19 1465

原创 vue3.0路由组件左右切换动画,React(基于umi3)路由专场动画

<template> <router-view v-slot="{ Component }"> <transition :name="tranitionClass"> <component class="app-view" :is="Component"></component> </transition> </router-view></template><sty

2021-03-23 17:48:24 1201

原创 axios拦截器

import axios from 'axios'// 添加请求拦截器axios.interceptors.request.use(function (config) { // 在发送请求之前做些什么 config.headers['content-type'] = "application/json" config.headers['Access-Control-Allow-Origin'] = '*' config.headers['Access-Token'] =

2021-03-16 16:49:52 83

原创 ts判断应用的运行环境(安卓,IOS,H5,微信浏览器,微信小程序, PC)

import { PlatFormEnv } from './enum'const userAgent = window?.navigator.userAgent;const mobileEnv = ['Android', 'iPhone', 'iPad', 'IPod']; // 手机环境const platFormEnv = (() => { if (!userAgent) return null; let isMobiel = false; mobileEn

2021-03-16 15:37:33 1066

原创 vue和react环境变量的使用

// vue下使用环境变量/** * * 1. 再项目根目录下(和src目录同级)创建.env.dev文件和.env.pro文件 (dev是开发环境,pro是生产环境) * 2. .env.dev文件里设置一个环境变量 VUE_APP_RUESTATUS = dev, .env.pro文件里设置一个环境变量VUE_APP_RUNSTATUS = pro * 3. 在package.json里创建npm指令 * 运行开发环境 "start:dev" : "vue-cli-service

2021-03-16 09:54:10 255

原创 css开启ios硬件加速(容器滑动缓慢卡顿)

-webkit-overflow-scrolling : touch;-webkit-transform: translateZ(0);transform: translate3d(0, 0, 0); /* translateZ(0)亦可 */

2021-03-10 17:39:13 617

原创 html的meta标签大全

<meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport"> <meta name="apple-mobile-web-app-titl...

2021-01-29 16:18:06 239 2

原创 H5使用div模拟input实现高度自适应

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Do

2021-01-29 11:35:48 401 1

原创 手写Vue里的nextTick方法

使用的typescriptconst callbacks: Array<Function> = []let pending = falseconst flushCallbacks: Function = (): void =>{ pending = false; if(callbacks && callbacks.length!==0){ const eventList: Array<Function> = [...callbac

2020-12-16 16:52:05 339

原创 js利用sheetjs生成excel并导出

下载sheet.jsgithub官方地址 : https://github.com/SheetJS/js-xlsx依赖js function openDownloadDialog(url, saveName) { if (typeof url == 'object' && url instanceof Blob) { url = URL.createObjectURL(url); // 创建blob地址

2020-11-11 10:07:35 2036

原创 H5移动端痛点问题(不定期更新)

1 关闭ios的input键盘默认大写<input type='text' autocapitalize='off' />2 ios开启input的键盘搜索键,点击搜索<form action="" onsubmit="return false;" id='form' > <input type='search' /></form>document.querySelector('#form').onkeypress = (e)=>{

2020-11-10 22:54:15 184

原创 vue下使用echart的中国地图开发疫情情况

下载echartsnpm install echarts --savevue文件引入echarts和china的地图jsimport echarts from 'echarts'import "../../../node_modules/echarts/map/js/china";配置option和显示地图必要信息// template里<div class="charts"></div>// js里export default { data() {

2020-11-10 14:43:59 412

原创 react(Taro)使用i18n国际化

下载依赖npm install react-i18next i18next i18next-browser-languagedetector新建文件,配置// 新建index.jsximport LanguageDetector from 'i18next-browser-languagedetector';import i18n from "i18next";import zh from './zh'import en from './en'// eslint-disable-next-

2020-11-06 17:07:53 1934 5

原创 vue使用scss实现修改客户端皮肤功能

1.新建全局scss// src/style/index.scss$backColor_yellow : yellow;$backColor_red : red;@mixin globalBackColor($color){ background-color : $color; [back-color="color1"] $ { // 在document.documentElement上监听back-color属性,如果html标签的back-color的值是'color1',那么就赋值

2020-10-26 14:55:24 449

原创 Vue2.x下使用vue-i18n国际化

npm上下载vue-i18n npm install vue-i18n新建文件夹配置i18n// i18m文件夹下新建index.jsimport Vue from 'vue'import Vuei18n from 'vue-i18n'Vue.use(Vuei18n )import zh from './zh.js'import en from './en.js'const i18n = new Vuei18n({ locale : localStorage.getItem.

2020-10-26 14:29:22 3173

转载 react &amp; taro 报错 _createSelectorQuery is not defined解决办法

在项目的node_modules文件下找到 taro-ui 3.0.0 的 package.json,在里面增加一个入口:"main:h5": "dist/index.esm.js"让 taro 把 index.esm.js 作为 taro-ui 的入口即可。

2020-10-20 14:45:37 1927 2

原创 原生ajax封装,和node后台配置跨域请求

利用原生js的window对象的fetch,封装ajax方法到window上ajax.jswindow.$ajax = (url, method, data = {}) => { method = method.toLocaleUpperCase() let config = { method, headers: { // 配置请求头 'Content-Type': 'application/json',

2020-10-12 14:30:00 126

空空如也

空空如也

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

TA关注的人

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