自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

暖光的博客

不积硅步无以至千里,不积小流无以成江海

  • 博客(60)
  • 资源 (2)
  • 收藏
  • 关注

原创 原型链,函数与对象关系

原型链function Person(){this.name="ceshi"}// 例1Person.__proto__===Function.prototype // truePerson.__proto__===Person.constructor.prototype // truePerson.constructor === Function // true// 例2Person.prototype.__proto__===Object.prototype //true// 例3P

2023-03-28 16:19:36 173

原创 vue3性能提升的方面(对比vue2)

patchFlag,静态提升,预字符串化,事件缓存,vue3性能提升

2023-03-28 11:56:27 1032 1

原创 vscode 保存自动格式化代码配置

自动格式化代码配置

2023-02-01 15:26:26 764

原创 小程序web worker的使用

小程序 web worker简介及使用

2023-01-12 16:06:35 528

原创 小程序事件,冒泡,互斥,捕获

冒泡事件类型触发条件touchstart手指触摸动作开始touchmove手指触摸后移动touchcancel手指触摸动作被打断,如来电提醒,弹窗touchend手指触摸动作结束longpress手指触摸后,超过350ms再离开,如果指定了事件回调函数并触发了这个事件,tap事件将不被触发tap手指触摸后马上离开transitionend会在 WXSS transition 或 wx.createAnimation 动画结束后触发

2022-06-15 15:08:23 553

原创 webpack优化的几个方向

1. 减小代码体积比如css压缩,js代码压缩,删除注释2. 图片资源压缩url-loader可以指定将小文件转换为base643. 文件缓存 hashconst HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = {- entry: './index.js',+ entry: {+ main: './index.js',+ }, output: {-

2021-09-07 15:08:40 224 1

原创 node 基础服务器搭建 http模块 url模块

首先我们规划三个文件入口文件index.js服务http.js处理请求handler.jsindex.js 入口点文件var serve = require('./serve/http');const {handler} = require('./serve/handler');serve.start(handler);http.js 主要是搭建服务,设置请求头等const http = require("http");const url = require("url.

2021-09-07 14:32:17 191

原创 node path模块常用方法

var path = require('path');/** * ./ 指向当前的工作路径 * __dirname 指向被执行 js 文件的绝对路径 *//** * 获取url的最后一级 * @param {*} url * @param {*} suffix 需要忽略的后缀 * @returns */const lastPath = (url,suffix) => { if (suffix) { return path.basename(url,suffix

2021-09-07 11:10:05 182

原创 node fs模块的prmoise方式的常用方法

node同步与异步方式请参考下面的博客node fs同步异步的方法prmose Api会提示时实验阶段,但不影响我们使用var fs = require('fs').promises;// 读取文件const getFile = (url, chart="utf-8") => { return fs.readFile(url, chart);}module.exports.getFile = getFile;// 写入文件const setFile = (url, d.

2021-09-07 11:06:29 250

原创 node fs模块 读写文件常用方法

var fs = require("fs");// 异步读取文件const getFileAsync = (url, chart = "utf-8") => { fs.readFile(url, chart, function (err, data) { if (err) { throw Error("读取文件异常" + err); } console.log(data); });};module.exports.getFileAsync = ge

2021-09-07 10:57:54 250

原创 npm脚本 scripts与node process

一、 npm部分1. npm 脚本npm 允许在package.json文件里面,使用scripts字段定义脚本命令。如下它的每一个属性,对应一段脚本。比如,build命令对应的脚本是node build.jsnpm run build 等同于执行 node build.js当前目录的node_modules/.bin子目录里面的所有脚本,都可以直接用脚本名调用,而不必加上路径{ // ... "scripts": { "build": "node build.js" }

2021-09-06 16:23:46 440

原创 小程序门店助手认证流程

流程图

2021-09-06 12:18:33 297

原创 常用的数据验证封装 返回promise可扩展

// 常用正则const isPhone = /^1[3|4|5|6|7|8|9][0-9]\d{8}$/; // 手机号验证const isEmial = /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/; // 邮箱const isChinese = /^[\u4E00-\u9FA5\uf900-\ufa2d]$/; // 汉字const isBanking = /^[1-9]\d{9,29}$/; // 银行卡号...

2021-08-24 19:02:54 129

原创 js 对象(Object)方法总结

1. create创建一个对象const obj = Object.create({a:1}, {b: {value: 2}})第一个参数为对象,对象为函数调用之后返回新对象的原型对象,第二个参数为对象本身的实例方法(默认不能修改,不能枚举)obj.__proto__.a === 1 // true obj.b = 3;console.log(obj.b) // 2//创建一个可写的,可枚举的,可配置的属性pobj2 = Object.create({}, {

2021-08-24 11:10:46 2170 1

原创 小程序 获取组件实例与wxs获取时间

获取组件实例组件id属性赋值,比如user操作组件实例之前需判断,有可能你操作的时候,实例还没有生成。比如this.selectComponent(’#user’) && this.selectComponent(’#user’).getData(this.data.id)wxs获取时间这里与js不同,需要调用getDate<wxs module="tools">var times = function (val) { if (!val) return "

2021-03-25 11:31:07 405

原创 企业微信登录流程图

流程图开发环境模拟登录,是后端在浏览器写入cookie,请求时携带cookie,不重定向,直接登录成功。生产环境是第一次请求接口拿到重定向地址,需要重定向然后请求接口。

2021-03-11 16:04:21 1010

原创 企业微信sdk调用流程

企业微信JS-SDK 流程图企业微信JS-SDK使用创建需要调用企业微信的api列表所有js接口列表https://work.weixin.qq.com/api/doc/90001/90144/90540const jsApiList = [ "hideMenuItems", // 批量隐藏功能按钮 "showMenuItems", // 批量显示功能按钮 "hideAllNonBaseMenuItem", // 隐藏所有非基础

2021-03-11 15:44:04 2008 1

原创 webpack4 搭建vue项目,从头开始踩坑记

webpack搭建项目流程和全部过程以及踩坑记一 初始化项目进入目录 npm init -y生成默认的package.json二 搭建开发服务,安装webpack,webpack-cli,webpack-dev-server这里面有坑,版本之间兼容问题,我试的webpack5和webpack-dev-server3是不兼容的如下是我安装的版本:"webpack": "^4.44.2","webpack-cli": "^3.3.12","webpack-dev-server": "^.

2020-12-25 15:48:29 268 1

原创 js 预编译 GO与AO 变量和函数声明提升

预编译预编译分为全局(GO)预编译和局部(AO)预编译,全局预编译发生在页面加载完成时执行,而局部预编译发生在函数执行的前一刻。js运行三步曲首先JavaScript的执行过程会先扫描一下整体语法语句,如果存在逻辑错误或者语法错误,那么直接报错,程序停止执行,没有错误的话,开始从上到下解释一行执行一行。1 语法分析2 预编译3 解释执行局部预编译(AO)的4个步骤在执行的前一刻会创建一个ao对象将函数内所有的形参和变量声明储存到ao对象中,value为undefined;将形参和实

2020-12-23 11:45:19 566

原创 js 新手常用小技巧 简写语法总结归纳

变量简写var a ;var b=8;var c;//等价于var a, b=8, c;对象属性简写当对象的属性与值是同一个值时let obj ={a:a,b:b}// 等价于let obj = {a,b}拓展运算符let a = [1,2,3];let b = [4,5,6];//如果说a,b合并,ES5的方法必然是使用a.concat(b),如果使用...不是更好吗?let c = [1,2,3,...b]//还有就是如果两个对象之间相互复制,使用拓展运算符就

2020-12-23 11:14:46 286 2

原创 js浏览器端 代码执行顺序 事件循环Event Loop 宏任务与微任务

js -> 单线程单线程我们可以理解为:就是js代码在执行过程中,后面的代码想要执行就必须等当前代码执行完成后才可以进行。同步任务与异步任务先执行同步任务,再执行异步任务。同步任务指的是,在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务;异步任务指的是,不进入主线程、而进入"任务队列"(task queue)的任务,只有"任务队列"通知主线程,某个异步任务可以执行了,该任务才会进入主线程执行。宏任务与微任务异步任务又分为了宏任务与微任务;其重要作用是为了增加代码执

2020-12-22 17:18:51 147 1

原创 NProgress 页面加载进度条插件

本文示例是在vue中展示首先安装nprogressnpm nprogress -S然后在路由的全局钩子函数中配置很简单,一会就实现了import { createRouter, createWebHistory } from "vue-router";import NProgress from "nprogress";import "nprogress/nprogress.css";import Routes from "./routers";const router = cre.

2020-12-21 18:30:25 170

原创 vue3 新特性总结

Vue2 到 Vue3 最直观的改变就是 Composition API——几乎所有的 Vue2 options 方法都被放到了 setup 函数里。就是从基于对象的编程(OOP)转向了函数式编程(FP)。创建方式首先创建方式发生了改变import { createApp } from "vue"; createApp(App)Teleport可以改变它包含的html渲染的节点位置,例如:下边的div将会渲染到body下边<teleport to="body"> &lt.

2020-12-21 18:08:22 387 2

原创 vue路由懒加载之分包 分模块加载

路由懒加载 分包如下代码,Home无任何处理,直接引入Ceshi 运用官方推荐的路由懒加载,优化首页加载的时间About在路由懒加载的基础上,进行了分包,webpackChunkName: “name”,注意该注释,name一样的会被打包在一起。注释不可省略。只有在跳到该路由的时候,才会加载import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";import Home from "../views

2020-12-21 15:29:32 2342

原创 详解js数据类型之深浅拷贝

数据类型undefined ---------- 未定义 Undefinedboolean ------------ 布尔值 Booleanstring -------------- 字符串 Stringnumber ------------ 数值类型 Numberobject ------------- 对象 Objectnull --------------- 空 Nullsymbol ------------ Symbol es6新增的深浅拷贝js数据类型分为基本数据类型

2020-12-21 15:12:30 184

原创 小程序ios真机 z-index 问题

在小程序开发工具中,z-index层级设置展示是正常的,但是在ios真机中回出现问题。层级设置在同一个view父集之下,那么展示就是正常的层级设置在不同view父集之下,那么开发工具展示是正常的,ios真机有问题android 展示一切正常所以为了兼容,利用z-index设置层级时,得在同一个父集元素之下...

2020-12-18 15:02:04 1197

原创 vue插槽 slot与slot-scope v-slot

插槽插槽,也就是slot,是组件的一块HTML模板,这块模板显示不显示、以及怎样显示由父组件来决定。单个插槽 | 默认插槽 | 匿名插槽  首先是单个插槽,单个插槽是vue的官方叫法,但是其实也可以叫它默认插槽,或者与具名插槽相对,我们可以叫它匿名插槽。因为它不用设置name属性。父组件<template> <div class="father"> <h3>这里是父组件</h3> <child>

2020-11-04 18:09:04 637

原创 微信小程序实现锚点功能

只需要在小程序触发标签绑定data-id, 目标标签绑定id// 锚点跳转 scrollView: function (event) { var me = this; var query = wx.createSelectorQuery().in(me); var id = event.currentTarget.dataset.id;//需要锚点点id query.selectViewport().scrollOffset() //#comm 跳转到指定i

2020-10-26 16:37:39 2113

原创 改变this指向 bind,apply,call三者区别与用法 arguments

apply、call call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。var func = function(arg1, arg2) { };func.call(this, arg1, arg2);func.apply(this, [arg1, arg2])其中 this 是你想指定的上下文,他可以是任何一个 JavaScript 对象(JavaScript 中一切皆对象)...

2020-10-26 16:32:41 307

原创 js和vue 防抖(debounce)、节流(throttle)

防抖(debounce): 当持续触发某事件时,一定时间间隔内没有再触发事件时,事件处理函数才会执行一次,如果设定的时间间隔到来之前,又一次触发了事件,就重新开始延时。js实现:/** * 函数防抖 */function debounce(fn, delay) { // 记录上一次的延时器 var timer = null; var delay = delay || 200; return function() { var args = argume...

2020-09-14 11:13:50 798

原创 vue混入mixins 理解

vue混入 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。个人理解:vue混入主要是提取公用的js,减少不必要的代码,对相同代码的封装。注意点:混入对象的内容必须是一个对象。 当使用混入时,相同的内容都会合并。 数据对象如果有相同的,则以被混入的对象中data数据为准。 一旦使用全局混入对象,将会影响到 所有 之后创建的...

2020-09-14 10:57:15 236

原创 jVectorMap 地图根据经纬度标点 足迹图,分布图

根据经纬度地图标点jVectorMap$('#map').vectorMap({ // 此处更改地图 map: 'cn_merc_en', // 中国地图 //map: 'us_aea', // 美国地图 //map: 'world_mill', // 世界地图 // backgroundColor: 'transparent', backgroundColor:'rgba(255,255,255,0)'

2020-06-09 16:19:18 625

原创 vant 下拉刷新与上拉加载一起使用的问题 下拉刷新触发两次 list与pull

//下拉刷新 onRefresh() { this.list = []; this.curPage = 1; this.finished = true; this.getData(); },getData() { this.isLoading = false; getList({ .

2020-06-09 11:30:44 4101 3

原创 vue 页面刷新 vuex状态消失问题

handleStore() {//刷新时将vuex的值保存在sessionStorage,刷新完成读取出来 let STORE_KEY = "STORE" if (sessionStorage.getItem(STORE_KEY)) { this.$store.replaceState(Obj...

2020-04-13 21:21:35 594

原创 vue-cli 配置环境测试环境

文件需要建在项目根目录.env .env.test.env文件NODE_ENV = 'production'VUE_APP_FLAG = 'pro'.env.test文件NODE_ENV = 'production'VUE_APP_FLAG = 'test'outputDir = testpackage.json文件"scripts": { "serve":...

2020-04-13 21:17:11 302 1

原创 pxtorem插件配置

在vuecli 项目根目录 新建postcss.config.jsmodule.exports = { plugins: { 'autoprefixer': { overrideBrowserslist: [ 'Android 4.1', 'iOS 7.1', ...

2020-04-13 21:11:18 4981

原创 小程序tabbar和位置权限

"permission": { "scope.userLocation": { "desc": "位置信息将用于小程序打卡" } }, "tabBar": { "color":"#333333", "selectedColor":"#199ED8", "list": [ { "pagePath": "pag...

2020-04-13 20:50:04 587

原创 小程序button按钮样式及授权

小程序button按钮狂傲样式,在wxss中无效果,可以在style重写样式<button open-type="getUserInfo" bindgetuserinfo="callUser" style="width:80%;line-height:88rpx;height:88rpx;padding:0" class="btn" >授权登录</button>o...

2020-04-13 20:47:02 727

原创 vue transition动画 fixed定位初始化错乱

vue组件切换动画但fixed定位会导致页面初始化错乱一下,有解决办法欢迎交流<transition :name="$store.state.global.EXCESSIVE"> <router-view/> </transition>.slide-right-enter-active, ....

2020-04-05 17:48:16 2176 5

原创 vant list 组件总结

list组件注意事项1 接口调用失败,会循环调用接口,解决办法加载失败需要处理2 list请求一次要一满屏,不然会接着调用3 接口请求反回停止的条件 1》加载失败 2》数据加载完成,再没有了 3》调用一次数据铺满全屏 isLoading: false, //下拉刷新 listLoading: false,//list加载 finis...

2020-04-05 17:42:29 1788 3

react-devtools-4.16.crx

react调试工具

2021-08-24

vue-devtools

vue2开发调试工具

2020-12-25

空空如也

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

TA关注的人

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