自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2023前端面试总结含参考答案(一)

面试总结

2023-02-10 18:13:57 2662

原创 2023前端面试总结含参考答案(二)

文章目录1. 数组去重方法,最简方法。(3)2. this指向(2)3. call、apply和bind4. typeof和instanceof(2)5. 跨域(5)6. 闭包及优点(3)7. 原型链(2)8. js数据类型9. promise(4)10. 组件传值(3)11. 默认事件的阻止方法12. NaN,undefined,null与自身相等吗?13. computed和watch区别注:括号内的数字为出现频次1. 数组去重方法,最简方法。(3)最简:Array.from(new Set(

2021-05-11 17:31:01 210 1

原创 数组常用方法(2)---数组遍历方法

数组遍历方法---高阶函数

2023-02-10 18:13:01 835

原创 递归-递归案例代码、根据子级查所有父级示例代码

递归案例

2023-02-06 15:30:00 240

原创 伪类和伪元素

伪类和伪元素

2023-02-03 17:01:12 65

原创 对vue中$set的粗略理解

这是官方相关文档~点我点我:Vue.set用法:向响应式对象中添加一个 property(属性),并确保这个新 property 同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新 property,因为 Vue 无法探测普通的新增 property (比如 this.myObject.newProperty = ‘hi’)Vue 不允许在已经创建的实例上动态添加新的根级响应式属性 (root-level reactive property)。然而它可以使用 Vue.set(object,

2021-07-20 15:31:04 105

原创 对vue中nextTick原理的粗略理解

这是官网nextTick部分相关的文档~点我:Vue-nextTick点我:异步更新队列用法:在下次 DOM 更新循环结束之后执行延迟回调(即回调函数将在 DOM 更新完成后被调用)。在修改数据之后立即使用这个方法,获取更新后的 DOM。我的理解是这样的~vue是数据变更驱动视图变更,在数据发生改变后立即获取DOM,此时的DOM是未更新的,而nextTick回调中的操作可以在DOM更新结束之后再执行,从而可以在修改数据之后立即使用这个方法,获取更新后的 DOM。$nextTick() 返回一个

2021-07-20 11:10:45 185

原创 SyntaxError: Identifier ‘XXX‘ has already been declared

检查代码,出现了重复变量。解决代码冲突的时候,保留了双方变更,导致数据重复了,我吐了~

2021-07-19 16:29:30 1714 1

原创 [vue-i18n] Value of key ‘xx‘ is not a string!

[vue-i18n] Value of key ‘xx’ is not a string!这个是多语言文件的警告因为源数据中存在空的情况,导致语言列表中有空值。$t找不到对应的key。检查一下语言文件,发现是代码冲突合并的时候选择了保留两者的修改,导致一个文件里面有两份重复的数据,删除掉多余的重复代码之后就正常了。大家千万要注意这个坑!!!!!...

2021-07-19 16:23:57 1618

原创 小程序提交新数据后如何返回上一页并刷新数据?

uni.navigateBack();提交完成后返回上一页需要刷新数据的页面,在onShow里调刷新数据的函数。两步即可实现数据刷新啦~

2021-04-22 15:28:47 583

原创 横向滚动如何实现?

1)scroll-view实现html结构如下: <scroll-view class="scroll" scroll-x="true" style="height: 80px;"> <view class="item" v-for="(item,index) in 5" :key="index"> <view class="num">123</view> </view> </scroll-view>

2021-04-22 14:57:32 302

原创 小程序长列表显示:dom元素超出限制,如何解决空屏问题?

用于解决长列表dom渲染溢出造成的空白无法显示问题。思路:借助scroll-view的scroll事件的事件对象中的scrollTop的值判断当前用户可视的第一个元素的index,用v-if控制当前可视元素的前10个item和后10个item渲染,其他的不渲染,达到局部渲染的效果,从而解决dom溢出的问题。item的作用是保留高度,使滚动条保持正常位置。前提条件是list里面的item的height要一样,才能计算出当前可视的元素的index。示意图如下:1)不分页情况html结构如下: &

2021-04-22 14:55:45 1308

原创 wx.getUserInfo与wx.getUserProfile

wx.getUserInfo()官方文档是这样写哒~参数:返回值:

2021-04-20 17:22:56 862

原创 小程序登录相关问题

目前登录流程首先进入自动登录流程:wx.login---->拿到js_code调用后台接口传js_code,小程序标识(appid及密钥,或者将appid及密钥存在服务器,传一个约定好的标识即可)---->拿到openid,unionid首次登录时isLogin为false,跳转至密码登录,二次登录时isLogin为true,调用后台接口,传openid,unionid------>拿到userid等用户信息,比对返回的用户名是否与存入的用户名一致。一致则登录成功,不一致则转为

2021-04-20 16:07:15 214

原创 小程序授权常见预期表现

try{ const authorize = await wx.authorize({scope: 'scope.userInfo'}) console.log(authorize,'authorize');}catch(e){ console.log(e);}预期表现:同意授权:拒绝授权:拒绝后再次调用authorize:授权信息为空:(见于用户刚进入时调用wx.getUserInfo)无效的scope:(scope列表中没有这个值)...

2021-04-20 09:48:33 112

原创 小程序官方异步api变同步:增强编译

官方的异步api可以变为同步,方法如下:打开开发者工具→详情→本地设置→增强编译兼容性没有测试过,目前来说是没啥问题的,有bug滴滴我啊~

2021-04-20 09:33:46 785 2

原创 小程序更新问题:新版本发布后为什么不更新?

uniapp微信小程序更新检测官方文档是这样写哒~解决方法:右上角详情(三个点那个)→重新进入小程序,重新进入后就是新版本啦~马上应用最新版本需要在App.vue文件中增加更新代码,代码如下:// 版本检测更新 async checkForUpdate() { const updateManager = uni.getUpdateManager(); try { await new Promise

2021-04-19 20:26:47 3666

原创 小程序全量发布与灰度发布

更新了~(2021.4.19) 今天看变成了按微信号灰度,看图:详情如下:大致就是这样啦~这里是分割线~今天又get了一个新知识~全量发布:发布之后所有的用户都能使用当前最新版本小程序。注:新发布后的小程序一般会在12-24小时内在客户端更新。详见另一篇文章:小程序更新问题:新版本发布后为什么不更新?灰度发布:分不同时间段来控制用户使用最新版小程序(又称分阶段发布),即固定时间段的用户会使用最新版小程序。用于小程序功能太多,用户太多时控制风险。不过一般的小程序都是全量更新啦

2021-04-19 15:01:01 11222

原创 小程序的审核与发布

打开微信开发者工具,点击右上角上传,确定版本信息后点击确定。打开微信公众平台,点击版本管理,拉到最底部,找到刚刚上传的版本,提交审核,若需要登录操作,需填写测试账号密码,不然会审核不通过。审核通过后,点击提交发布,全量发布。线上版本就会更新。...

2020-08-27 10:18:25 289

原创 less与sass的样式穿透

less/deep/ +类名sass::v-deep +类名

2020-08-24 16:42:28 726

原创 数组常用方法(1)插入、删除数组元素

push()向数组中插入元素(末尾),改变原数组,返回值是改变后的数组的length,可以同时插入多个元素。var arr = ['a', 'b']var re = arr.push('c', 'd')console.log(arr);console.log(re);结果:[ 'a', 'b', 'c', 'd' ]4...

2020-08-01 19:17:27 527

原创 [vue warn]:Avoid mutating a prop directly since the value will be overwritten whenever...

[vue warn]:Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop’s value. Prop being mutated: “isCommentShow”.避免直接改变属性,因为每当父组件重新渲染时,该值都将被覆盖。相

2020-07-23 18:55:20 397

原创 轻量级时间处理工具dayjs

第三方依赖:dayjs下载:npm i dayjs引入:import dayjs from 'dayjs'// 加载中文语言包import 'dayjs/locale/zh-cn'// 导入相对时间插件import relativeTime from 'dayjs/plugin/relativeTime'// 全局使用中文语言包dayjs.locale('zh-cn')// console.log(dayjs().format('YYYY-MM-DD'));// 配置相对时间插件

2020-07-23 18:24:20 414

原创 移动端图片剪裁工具cropperjs

第三方依赖:cropperjs下载:npm install cropperjs引入css及js:import 'cropperjs/dist/cropper.css'import Cropper from 'cropperjs'初始化:(必须在mounted中) mounted() { // 获取图片 const image = this.$refs.img // 获取cropper实例 const cropper = new Cropper(image,

2020-07-23 18:02:25 447

原创 replace()字符串正则替换

字符串替换str.replace(/正则表达式/gi,替换字符串)g全局,i忽略大小写const str = 'abcd-abcd-ABCD-ABCD'const str1 = str.replace(/a/gi,'#')console.log(str1)结果:#bcd-#bcd-#BCD-#BCD使用正则表达式匹配需要替换的字符串,然后进行替换。正则表达式构造函数:const reg = new regExp(匹配模式字符串,匹配模式)匹配模式字符串:根据字符串生成正则匹配模式

2020-07-21 16:33:19 774

原创 Uncaught (in promise) TypeError: Object(...) is not a function

按需导入时没有加大括号import { collectArticle, delcollectArticle } from '@/api/article.js'

2020-07-21 16:03:30 8663 2

原创 v-if和v-show能和v-for同时出现吗?

v-if是决定dom元素是否渲染,而v-show是渲染元素后决定元素是否显示,改变元素的display值。v-for在早期是可以和v-if一起使用的,在vue3.x中同时出现会有红色波浪线提示不能一起使用,因为v-for的优先级大于v-if,在循环元素时,每个元素都要进行v-if判断,但是最终显示的元素太少造成资源浪费,所以不建议一起使用。在需要v-for与v-if一起使用时可以用v-show代替v-if。...

2020-07-10 09:08:06 7659

原创 项目优化之路由懒加载

当打包构建应用时,JavaScript 包会变得非常大,影响页面加载,为了优化项目就要进行路由懒加载。路由懒加载简单来说就是将路由进行一个分类,不是一次性全部加载所有路由,而是把不同路由对应的组件分割成不同的代码块,在用到该路由时再加载这个路由的分类,这样能够提高加载效率。常用的import方法分类代码如下:const Login = () => import(/* webpackChunkName: "login_home_welcome" */ '../components/Login.vu

2020-07-09 19:49:50 250

原创 常规数据共享与vuex全局数据管理

常规数据共享父向子传值:v-model数据绑定,指令子向父传值:$on和$emit兄弟之间传值:eventBus事件机制vuex全局状态(数据)管理state:提供唯一公共数据源。mutations:用于变更state中的数据,变更数据只能通过mutation,不能直接变更。变更数据方法有一个state参数,用于获取state中的数据。actions:用于处理异步任务。异步方法必须有一个参数context,代表当前store实例对象。getters:用于对store中的数据进行加工处理

2020-07-09 19:33:43 266

原创 ...展开运算符的几种使用场景

解构赋值数组的解构赋值:const [arg, arg1, ...arg2] = ['a', 'b', 'c', 'd']console.log(arg);console.log(arg1);console.log(arg2);结果:ab[ 'c', 'd' ]数组中按顺序匹配,将’a’赋值给arg,'b’赋值给arg1,剩下的元素以数组形式赋值给展开运算符作用的变量。对象的解构赋值:const { a, b, ...data } = { 'a': 111, .

2020-07-09 18:48:32 1131

原创 模板字符串特点及使用

模板字符串特点:支持换行,特定语法插入变量,特定语法插入表达式,使用${ }包裹变量和表达式,特殊符号原文输出需使用反斜杠转义。使用:const flag = trueconst str = `模板字符串支持换行`const str1 = `特定语法插入变量-----${str}`const str2 = `特定语法插入表达式------${flag?'模板字符串':'普通字符串'}`const str3 = `特殊符号需转义----\`-----\\n----特殊符号需转义`consol

2020-07-09 16:10:03 817

原创 SyntaxError: Unexpected identifier

我出现的问题是 在js文件中导入模块语法错误。const _ = require('lodash')写成了:import _ from 'lodash'导致报错。通常情况下这种报错都是少了逗号,大括号或者引号等语法错误。

2020-07-08 19:33:21 1162

原创 变量赋值的深拷贝与浅拷贝

基本数据类型:number,string,boolean,null,undefined复杂数据类型:object,array,function变量赋值 :基本数据类型的赋值是深拷贝,即改变一个另一个不受影响;复杂数据类型的赋值是浅拷贝,只是拷贝了引用地址,改变一个另一个也会跟着变。数字型:var a = 1var b = aa = 2console.log(a, b);结果:2 1对象:var obj = { a: 1, b: 2}var obj1 = obj

2020-07-08 19:25:18 695 6

原创 空字符串转为数组

空字符串使用split()方法转为数组var str = ''var arr = str.split(',')console.log(arr)输出结果为:[ '' ]由此可得:空字符串使用split()方法转为数组得到的是一个有一个空字符串元素的数组,而不是空数组。分隔符不管是逗号还是空格等等,结果都是一样的。**tips:**在循环遍历空字符串转为的数组时要注意这个问题,否则会出现渲染tag等标签时出现莫名空标签。...

2020-07-08 18:18:55 2005

原创 重复点击element-ui中导航栏进行路由跳转报错

解决代码如下:const originalPush = VueRouter.prototype.pushVueRouter.prototype.push = function push(location) { return originalPush.call(this, location).catch(err => err)}放到router的index.js文件中即可。

2020-07-08 16:44:59 438

原创 作业3

1. Base64的由来目前Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一。在做支付系统时,系统之间的报文交互都需要使用Base64对明文进行转码,然后再进行签名或加密,之后再进行(或再次Base64)传输。那么,Base64到底起到什么作用呢?在参数传输的过程中经常遇到的一种情况:使用全英文的没问题,但一旦涉及到中文就会出现乱码情况。与此类似,网络上传输的字符并不全是可...

2019-09-28 14:27:26 76

原创 作业2

1.pycharm的列编辑模式实现在当前文件点击鼠标右键——>选择Column Selection Mode——>用鼠标垂直选择文本,进行复制粘贴效果如下:2.小数精度损失问题如何导致? - 因为 Python 中使用双精度浮点数来存储小数。在 Python 使用的 IEEE 754 标准中,8字节64位存储空间分配了52位来存储浮点数的有效数字,11位存储指数,1位存储正负...

2019-09-27 14:20:21 199

原创 markdown基本使用练习

python介绍和环境安装##(了解)markdownmarkdown:后缀.md文件,本质上纯文本文件,类似txt。.txt记事本:缺点格式简单。word:优点功能强大,缺点破解、操作麻烦。这时一个程序员想平时写写需求文档,有一定的排版要求但不高。类似于html所写即所得,但又比html简单。md本质,渲染到网页上。行业以流行使用md书写编程文档。标题一级标题二级标题正文不...

2019-09-26 14:44:02 184

空空如也

空空如也

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

TA关注的人

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