自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 react性能优化之 useCallback

react性能优化之useCallback

2023-02-07 16:02:33 411 1

原创 Clipboard.js多次复制的问题

clipboard的使用

2022-07-28 16:42:14 743

原创 git之ssh-key配置

git配置

2022-06-29 15:20:55 718

原创 react生命周期(v15 - v16)对比

react生命周期

2022-06-10 11:35:36 195

原创 http中的post请求发⽣了两次(多了⼀次options请求)的原因

post请求出现options

2022-06-09 11:24:02 1040

转载 浅谈ajax和axios、fetch的区别

浅谈ajax和axios、fetch的区别

2022-06-09 10:44:29 579

原创 2022面试题

劫持a变量,当获取它的值得时候让它自增var value = 1;Object.defineProperty(window, "a", { get() { return this.value++; }});if (a === 1 && a === 2 && a === 3) { console.log("hello world!");}let test = { number: 1};test = new Proxy(test, {

2022-05-31 16:00:36 69

原创 react hook 父调用子的方法useRef

react hook系统

2022-05-26 20:07:44 320

转载 react hooks useReducer

useReduceruseReducer 接受的第一个参数是一个函数,我们可以认为它就是一个reducer,reducer的参数就是常规reducer里面的state和action,返回改变后的state。useReducer 第二个参数为 state 的初始值。useReducer 返回一个数组,数组的第一项就是更新之后 state 的值 ,第二个参数是派发更新的 dispatch 函数 。dispatch 的触发会触发组件的更新,这里能够促使组件从新的渲染的一个是 useState 派发更新函数,

2022-05-24 15:26:15 200

原创 react hooks useContext实现父子组件通讯

react hooks系列

2022-05-24 14:14:32 166

转载 React入门之models请求数据

项目基本结构一.接口 services.js ,模块 models.js ,HTML页面三者同级二.接口配置-servicesimport { get, post } from '@/utils/request';// get请求, 获取列表export const getList = (params) => { return get(`/api/demo/list`, params);};// post请求,获取列表export const postList = (pa

2022-05-23 11:59:17 568

原创 常用app URL schemes

最近开发遇到一个问题:要在一个内嵌的h5页面上唤起“小红书”、“抖音” App经过研究,原来只需要一个URL schemes就能解决1、手机系统:2、小红书:xhsdiscover://用户xhsdiscover://user/id笔记xhsdiscover://item/5f34197f000000000101e575话题xhsdiscover://topic/v2/xxxxxx主页xhsdiscover://homexhsdiscover:/.

2021-12-16 16:47:18 9935 1

原创 linux 运行.sh出现 Permission denied 解决办法

问题描述:原因:这个脚本没有执行权限解决方法: chmod +x setup.shchmod +x build.sh然后在运行就可以解决了网上还有别的 sudo chmod -R 777 需要root 权限才可以。

2021-09-08 12:56:37 3389

原创 如何用html写好看的邮件内容

邮件中嵌入html的注意事项要制作html格式的邮件,由于邮件客户端对样式的支持有限,要兼容很多种浏览器需要注意很多原则1.邮件使用table+css布局2.邮件主要部分在body内部,所以样式一定要写成内嵌的,不能在head标签中写style,也不能外联。如:<div id="app" style="max-width: 600px; font-family: “Microsoft YaHei” !important" > <ta

2021-08-12 12:06:37 1259

原创 JSON.parse(JSON.stringify ())实现深拷贝时有什么缺点

javaScript存储对象都是存地址的,所以浅拷贝会导致 obj1 和obj2 指向同一块内存地址。改变了其中一方的内容,都是在原来的内存上做修改会导致拷贝对象和源对象都发生改变,而深拷贝是开辟一块新的内存地址,将原对象的各个属性逐个复制进去。对拷贝对象和源对象各自的操作互不影响。在使用 JSON.parse(JSON.stringify(xxx))时应该注意一下几点1、如果obj里面有时间对象,则JSON.stringify后再JSON.parse的结果,时间将只是字符串的形式。而不是时间对象;.

2021-06-08 14:13:15 5638 1

原创 如何在微信小程序中使用wxParser(富文本编辑器)

微信小程序想要展示一篇文章,有图片,有文字,内容是由pc端的富文本编辑器编辑好的,可以使用wxParser插件。**1. 申请使用插件。**在「小程序管理后台 - 设置 - 第三方服务 - 插件管理」中查找插件名称「wxParser」(appid: wx9d4d4ffa781ff3ac),并申请使用。2. 引入插件代码。version 表示目前插件版本为 0.2.1,provider 为该插件的 AppID,而 wxparserPlugin 为自定义的插件名称。"plugins": { "w.

2021-06-04 18:31:49 2226

转载 axios 和 fetch 的区别

axiosaxios({ method: 'post', url: '/user/12345', data: { firstName: 'Fred', lastName: 'Flintstone' }}).then(function (response) { console.log(response);}).catch(function (error) { console.log(error);});axios

2021-05-27 10:32:30 4152

原创 js监听事件 (addEventListener()) 和普通事件( onclick() )的区别

研究事件冒泡时,发现一个问题,某些情况下,addEventListener() 要做的事,onclick也能做引发了我一个思考,这两个有什么区别?区别:1.onclick事件在同一时间只能指向唯一对象2.addEventListener给一个事件注册多个listener3.addEventListener对任何DOM都是有效的,而onclick仅限于HTML(这里的html指的是html4的标签)4.addEventListener可以控制listener的触发阶段,(捕获/冒泡)。对于多个.

2021-04-13 17:10:50 2494

原创 js——事件委托、事件冒泡和事件捕获

在javascript里,事件委托是很重要的一个东西,事件委托依靠的就是事件冒泡和捕获的机制,我先来解释一下事件冒泡和事件捕获:事件冒泡:从当前触发的事件目标一级一级往上传递,依次触发,直到document为止。事件捕获:从document开始触发,一级一级往下传递,依次触发,直到真正事件目标为止。在这里插入代码片asfasdf...

2021-04-13 15:51:02 236

原创 js中map()是否会改变原数组

官方文档是这样的写的:map定义和方法map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理的后值。map()方法按照原始数组元素顺序依次处理元素。注意:map不会对空数组进行检测map不会改变原始数组arr.map(function(currentValue,index,arr),thisValue)实际应用发现,只有当arr为基本数据类型时,map方法才不会改变原始数组,arr为引用类型时,还是会改变原数组的:// 1、基本数据类型let arr=[1,2,3,4,

2021-04-13 10:26:36 3270

原创 Vue之computed 和watch 的区别

在vue.js官方文档中看到computed和watch获取全名的一个例子:var var vm = new Vue({ el: '#demo', data: { firstName: 'Foo', lastName: 'Bar', fullName: 'Foo Bar' }, watch: { firstName: function (val) { this.fullName = val + ' ' + this.lastName },

2021-03-24 14:19:20 70

原创 微信小程序中如何应用音频

前几天在小程序中使用音频时发现一个问题:音频只能在模拟器中播放,在这里写下两种解决的方法:1、解决微信小程序 audio 组件在 ios 端无法播放问题audio组件自带的播放暂停功能只在模拟器中生效实现原理:给 audio 组件绑定点击事件,手动触发播放暂停方法!<audio id="myAudio" src="{{src}}" poster="{{shortImg}}" bindtap='audioClick' bindended="playEnd" .

2021-03-23 11:31:32 5168 1

原创 Vue中watch监听的用法

基本用法:当firstName值变化时,watch监听到并且执行<template> <div class="watch"> <p>FullName: {{ fullName }}</p> <p>FirstName: <input type="text" v-model="firstName" /></p> </div></template><script&g.

2021-03-23 10:32:57 580

原创 for...of 、 for...in , forEach、 map的区别

循环的几种常见用法1、for…of ,for…invar arr = [11,22,33];var obj = { name: '张三', age: 17, action: { 123: '123', 456: '456' }}for(let i in arr){console.log(i)} // 打印:0,1,2for(let i in obj){console.log(i)} // 打印:name,age,actionfor(let i of a.

2021-03-16 19:43:27 593

原创 Vue之过滤器filter

在官方文档中,是这样说明的:可被用于一些常见的文本格式化,vue中过滤器的作用可被用于一些常见的文本格式化。(也就是修饰文本,但是文本内容不会改变)过滤器分两种: 全局过滤器、局部过滤器全局过滤器使用频率还是非常高的。两个小例子:1、给金额前加“¥”符号,2、设备状态用文字展示。用三种方式分别来实现。一、不使用过滤器:<template> <div class="filter"> <el-card> <div> .

2021-03-16 13:39:30 203

原创 找回git rebase --skip消失的代码

找回git rebase --skip消失的代码多人开发项目的时候,大家都会用到git rebase这一命令,那么,merge报错时一般有以下作法:一、解决冲突处理好冲突文件,然后重新提交,并继续rebasegit add .git rebase --continue二、放弃rebasegit rebase --skip如果执行git rebase --skip 之后 ,之前修改的代码全都不见了时,就需要找回消失了的代码了,有以下方法1.git reflog操作,查看提交的历史记录

2021-03-10 17:59:19 2172

原创 Vue之点击事件

1、@keyup.enter.native和@click.native.prevent是什么意思一、 @keyup.enter.native一般vue的监听组件,是这样写<input v-on:keyup.enter="submit"><input @keyup.enter="submit">但是, 如果用了封装组件的话,比如element,这个时候使用按键修饰符需要加上.native<el-input v-model="account" placeho

2021-03-10 11:01:25 4011

原创 Vue-router中keep-alive的理解

keep-aliveVue-router的API文档中对于keep-alive的介绍并不多,所以对于初学者来说,可能并不太理解什么是keep-alive、作用是什么,什么时候用,怎么用?所以,通过这篇文章,我为大家详细讲解一下这四个问题。如有错误,还请大家指正,谢谢!1、什么是keep-alive`keep-alive`用来缓存组件,避免多次加载相应的组件,减少性能消耗,简单一点来说就是从页面1链接到其他页面后回退到页面1不用在重新执行页面1的代码,只会从缓存中加载之前已经缓存的页面1,这样可以减

2021-03-08 13:29:02 1024 1

原创 Vue之——nextTick()

1、nextTick()Vue中的nextTick涉及到Vue中DOM的异步更新,其中关于nextTick的源码涉及到不少知识,很多不太理解,暂且根据自己的一些感悟介绍下nextTick。在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。Vue.nextTick用于延迟执行一段代码看示例:<template> <div> <div ref="msgDiv">{{ msg }}</div&gt

2021-03-04 18:00:21 418 1

原创 Vue之生命周期

生命周期beforecreate :一般使用场景是在加 loading事件 的时候created :处于loading结束后,还做一些初始化,实现函数自执行(data数据已经初始化,但是DOM结构渲染完成,组件没有加载)beforemount :处于组件创建完成,但未开始执行操作mounted :处于发起后端请求,获取数据,配合路由钩子执行操作(DOM渲染完成,组件挂载完成 )beforeupdate、updated:处于数据更新的前后beforeDestroy :当前组件还在的时候

2021-03-04 10:43:30 211 3

原创 Vue之父子组件通信

1、父给子传值// 父组件<template> <div> <child title='我是父传给子的标题'></child> </div></template><script> import child from './child'; export default{ components:{ child:child } }</script>// 子组件<temp

2021-03-03 18:24:28 85

原创 Vue2入门之slot

1.slot是干啥的?假如父组件需要在子组件内放一些DOM,那么这些DOM是显示、不显示、在哪个地方显示、如何显示,就是slot分发负责的活。2.在父组件中,子组件标签里内套的内容,是不显示的。//子组件<template> <div> <h3>我是子组件</h3> </div></template>//父组件<template> <div> //h

2021-03-03 11:32:30 712

原创 当你从浏览器地址输入一个URL回车后发生了什么

当你从浏览器地址输入一个URL回车后发生了什么1.浏览器输入url,按下回车键2.浏览器根据域名查找对应的IP地址3.浏览器打开TCP连接(默认端口是80),向该ip发送一个http请求。如果浏览器存储了该域名下的cookie,那么cookie也会放在浏览器中4.服务器给浏览器进行一个306的永久重定向响应。5.浏览器根据重定向地址进行http请求6.服务器分析http请求,生成http响应,将响应发给客户端7.浏览器收到响应后,生成主页框架,同时向服务端继续发送请求,请求的内容是主页的资源,

2021-03-02 20:30:04 66

空空如也

空空如也

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

TA关注的人

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