自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 资源 (2)
  • 收藏
  • 关注

原创 使用vscode插件du-i18n处理前端项目国际化翻译多语言

Du-i18n插件提供一键扫描中文、提取文案、文案回显、在线翻译、文案上传、拉取线上文案、翻译漏检、切换语言以及分析统计等功能。

2024-06-18 16:55:50 3306 19

原创 Vue3 + TS 使用国际化组件I18n

/定义英文语言包对象},tabs: {//定义中文语言包对象hotspot: '热点',experience: '经验',focus: '关注',recommend: '推荐'},tabs: {work: '作品',private: '秘密',like: '喜欢'

2024-04-25 16:27:56 1252

原创 Vue将iconfont封装成全局组件,自定义类名

【代码】Vue将iconfont封装成全局组件,自定义类名。

2024-04-09 16:23:50 373 1

原创 微信小程序开发之原生小程序开发和uniapp开发的区别,两种开发方式语法上的区别

目前小程序开发有两种形式,分别是原生小程序开发和使用uniapp开发,uniapp和小程序原生开发都有各自的优缺点,开发者可以根据具体需求选择合适的开发方式。

2023-12-07 16:19:58 9875

原创 小程序中常用到的功能(包括代码实现)以及踩过的一些坑

【代码】小程序中常用到的功能(包括代码实现)以及踩过的一些坑。

2023-09-19 17:14:05 214

原创 前端工具人日常踩坑

【代码】前端工具人日常踩坑。

2023-07-14 14:42:06 293

原创 前端vue实现手机号输入框下拉展示历史登录过的手机号码

需求:做一个登录页面,登录过的号码显示在下拉框,下次登录可以选择登录过的号码进行登录无需重新输入。样式就不附上了,记录下逻辑过程吧。因为点击的时候希望同时收起下拉框,如果用click的话,容易触发input的blur事件,会快一步把下拉框收起来以至于点不到我们想点的历史手机号码,这个涉及到click和mousedown的执行顺序。大概就是在输入号码点击登录的时候,localstorage记录下手机号码,每次打开登录页面的时候先取localstorage里面的手机号码作为历史手机号下拉框的内容。

2023-03-27 16:25:54 762

原创 CryptoJS 前端加密解密踩坑

然后才发现原来我的加密是用ciphertext 是处理为16进制,而工具默认是加密成base64格式的,所以!诶,为什么加密结果和我的看起来不一样,虽然我是有加key和iv,但是感觉看起来就是不对呀。然后一开始后端还没部署,我就先拿了本地没加密的数据,自己先加密想着看看解密出来对不对。但是很奇怪,一直解密不出来,一开始一直以为是解密的方法有问题,试了很多种方法都不对,摸不到头脑,然后在搜索文章的时候,看到有工具可以直接加密解密出结果,我就试了一下。

2022-11-22 15:40:02 2175

原创 前端数据模拟Mock.js详解

前端数据模拟Mock.js详解,mock语法规则

2022-07-22 11:30:13 569

原创 02333软件工程要点及考点

文章目录软件工程概念的提出和发展软件需求与软件需求规约结构化需求分析软件测试目标与软件测试过程软件工程概念的提出和发展1.从事软件开发实践和软件工程项目管理的思想基础:正确认识软件开发2.20 世纪 60 年代以来,随着计算机的广发应用,软件生产率、软件质量满足不了社会发展的需求,成为社会、经济发展的制约因素,人们通常把这些现象称为软件危机3.软件工程概念的提出,其目的是倡导以工程的原理、原则和方法进行软件开发,以期解决出现的软件危机,软件工程这一术语首次出现在 1968 年的NATO(北大西洋公约

2022-05-05 17:31:37 2983

原创 彻底理解JavaScript中的执行机制,不再恐惧代码输出结果

请写出以下代码的输出结果,这是一道笔试中非常常见的题目,就问你熟不熟悉,眼不眼熟,但是很多同学往往摔在这道题里,那我们就很有必要展开讲讲了,只有研究它,才能战胜它,所谓知己知彼百战百胜嘛。首先这类题目常见的会包含同步任务、异步任务,异步任务又有宏任务和微任务,宏任务又有setTimeout、setInterval、script(整体代码)、UI交互等,而微任务包括Promise.then、process.nextTick等,将这些不同类型的任务放到一起,就容易混淆我们的判断。但是!只要搞清楚其中的规则,

2022-03-31 11:50:56 540

原创 一文掌握日常开发中用到的Git操作

设置用户和邮箱git config --global user.name 'your name'git config --global user.email 'your email'本地仓库关联远程仓库//1.没有本地仓库,有远程仓库,直接clone远程仓库git clone 远程仓库地址 //直接拉取master代码git clone -b 分支名 远程仓库地址 //拉取指定分支的代码git clone -b 分支名 远程仓库地址 新项目名 //定义新的.

2022-03-21 14:21:29 390

原创 【沉浸式答题】理解什么是重排和重绘

“请你讲一下对重排和重绘的理解”的标准答案!!!答:重排一定会导致重绘,重绘不一定会导致重排,需要频繁移动变换大小的div尽量脱离文档流,减少重排,提升性能,如果要改变子级p的样式,类名不要加在p的父级上,避免通过父元素去影响子元素,尽量避免使用table布局,可能很小的一个改动也会造成整个table的重新布局理解什么是重排和重绘重排:当DOM的变化影响了元素的几何信息(元素的位置和尺寸大小),浏览器需要重新计算元素的几何属性,将其安放在界面中的正确位置,这个过程叫重排,也叫回流,简单来..

2022-03-17 11:32:15 644

原创 前端笔试中最常见的两道题

编写一个方法实现数组的去重,这是笔试中最常见的面试题了,我自己在面试过程中多次遇到,背也要给我背下来!!① 利用添加对象属性方法去重,注意一定要用obj[item],而不是obj.itemconst arr = [1,2,4,2,1,2,3,5]function unique(ary){ let result = [],obj={} ary.forEach(item=>{ if(!obj[item]){ result.push(item) obj[item] = item.

2022-03-16 11:02:21 1229

原创 项目常用到的代码片段

生成随机数/声明和初始化数组/计算出总和、最小值、最大值/对字符串、数字或对象数组进行排序/从数组中过滤出虚假值/按照一个汉字两个字符计算字符串的长度/element中日期选择器禁止选择今天此刻之前的时间/上传Excel文件并读取文件内容...

2022-03-09 16:58:06 301

原创 vite.config.ts 基础配置

新建vue3+ts项目的vite.config.ts的初始配置如下:import { defineConfig } from 'vite'import vue from '@vitejs/plugin-vue'export default defineConfig({ plugins:[vue()]})设置 @ 指向 src 目录:import { defineConfig } from 'vite'import vue from '@vitejs/plugin-vue'import

2022-02-16 15:59:13 3200 1

原创 前端沉浸式答题

理解块级元素和行内元素理解重排和重绘核心:重排一定会导致重绘,重绘不一定会导致重排,需要频繁移动变换大小的div尽量脱离文档流,减少重排,提升性能重排:当DOM的变化影响了元素的几何信息(元素的位置和尺寸大小),浏览器需要重新计算元素的几何属性,将其安放在界面中的正确位置,这个过程叫重排,也叫回流,简单来说就是重新生成布局,重新排列元素下面情况会发生重排:页面初始渲染,这是开销最大的一次重排添加/删除可见的DOM元素改变元素位置、尺寸(边距/填充/边框/宽度/高度)、内容(文字数量/图片

2022-01-21 11:55:51 771

原创 前端AES加解密

import CryptoJS from 'crypto-js';// 加密getAES (word) { let data = CryptoJS.enc.Utf8.parse(word); let key = CryptoJS.enc.Utf8.parse('秘钥'); let iv = CryptoJS.enc.Utf8.parse('偏移量'); let encrypted = CryptoJS.AES.encrypt(data, key, { iv: iv, mo

2021-11-02 14:52:56 228

原创 纯前端实现Excel文件下载

最近有个模板下载的需求,因为考虑到是静态文件,直接前端做不用后端再写接口,就把文件放在前端,前端实现下载了<template> <div> <button @click="downloadTemplate">下载模板</button> </div></template><script>export default{ methods:{ downloadTemplate(){ const ancho

2021-11-01 14:14:34 1110 2

原创 Vue配置每个页面对应不同的标题

在index.html配置一个固定的标题,用于加载完成前的过渡显示,比如你的网站叫 ASDN,那你就直接<!DOCTYPE html><html lang=""> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=devi

2021-10-18 10:26:20 612

原创 ES6 - 8.数组的扩展

扩展运算符(…) ,好比rest参数的逆运算,将一个数组转为用逗号分隔的参数序列console.log(...[1,2,3]) //1 2 3console.log(1,...[2,3,4],5) //1 2 3 4 5[...document.querySelectorAll('div')]//[<div>,<div>,<div>]//该运算符主要用于 函数调用function push(array,...items){ .

2021-09-29 15:52:36 113

原创 el-autocomplete 远程请求接口搜索踩坑

<templete><div> <el-autocomplete v-model="state" value-key="name" :fetch-suggestions="querySearchAsync" placeholder="请输入内容" @select="handleSelect"></el-autocomplete>//这里主要的坑是这个value-key,除非你的数据要显示的key刚好是value,不然就得配置这个东西</div&g

2021-09-16 16:26:03 1190

原创 小程序的全局配置 app.json、页面配置

entryPagePath,指定小程序的默认启动路径(首页),常见情景是从微信聊天列表页下拉启动、小程序列表启动等,如果不填,将默认为pages列表的第一项,不支持带页面路径参数app.json{ "entryPagePath":"pages/index/index"}pages 用于指定小程序由哪些页面组成,每一项都对应一个页面的路径(含文件名)信息。文件名不需要写文件后缀,框架会自动去寻找对应位置的.json,.js,.wxml,.wxss四个文件进行处理,未指定entryPagePa.

2021-09-08 16:58:40 4431

原创 ES6 - 7.函数的扩展

ES6允许为函数的参数设置默认值,即直接写在参数定义的后面function log(x,y = 'World'){ console.log(x,y)}log('Hello') // Hello Worldlog('Hello', 'China') //Hello Chinalog('Hello','') //Hellofunction Point(x=0,y=0){ this.x = x this.y = y}const p = new Point()p.

2021-09-07 16:31:09 129

原创 ES6 - 6.数值的扩展

Number.isFinite():用来检查一个数值是否为有限的(finite)Number.isNaN():用来检查一个值是否为NaNNumber.isFinite(15) //trueNumber.isFinite(0.8) //trueNumber.isFinite(NaN) //falseNumber.isFinite(Infinity) //falseNumber.isFinite(-Infinity) //falseNumber.isFinite('.

2021-09-06 17:00:39 99

原创 ES6 -- 5.正则的扩展

正则这块东西以前也学得不深,也都不太熟,先回顾一下高程3的内容:1.通过RegExp类型来支持正则表达式,使用下面的语法,可以创建一个正则表达式:var expression = / pattern / flags其中的模式(pattern)部分可以是任何简单或复杂的正则表达式,可以包含字符类、限定符、分组、向前查找以及反向引用。每个正则表达式都可带有一或多个标志(flags),用以标明正则表达式的行为。正则表达式的匹配模式支持下列 3 个标志。g:表示全局模式,即模式将被应用于所有字符串,而

2021-09-02 17:16:20 167

原创 ES6 -- 3.字符串的扩展 4.字符串的新增方法

1.字符的Unicode表示法"\u0061"// "a"2.字符串的遍历接口ES6 为 字符串添加了 遍历接口,使得字符串可以被for … of 循环遍历for (let codePoint of 'foo'){ console.log(codePoint)}//'f'//'o'//'o'3.引入模板字符串,可以在字符串中嵌入变量//传统的模板写法: 'There are <b>' + basket.count + '</b> ' + 'items

2021-09-02 09:31:54 123

原创 HbuilderX 安装后显示不全,无法拖动如何解决

这一下把我给看懵了,怎么拖也拖不动,连个关闭按钮也看不到,关了重启,卸载重装,关机重启,都不行,都这个样子,这不就逼死一个强迫症了吗终于在社区看到有别的小朋友也被坑了,然后大佬的回答,天呐。。。这可是2021年啊,现在还没有解决,也是绝了。。。。这不才像个人样吗。。。。。...

2021-08-31 14:58:22 1198 4

原创 一些常用的正则校验(手机号,电子邮箱,身份证号...)

// 身份证号export function isIdNo (number) { if (!number) return false const regx = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X)$)/ return regx.test(number)}// 电子邮箱export function isEmail (value) { const emailReg = /^([a-zA-Z]|[0-9])(\w)+@[a-zA-Z0-9]+\..

2021-07-25 13:07:06 248

原创 关于Vue3 的一些变化

在组件中使用emit需要先进行定义,不然控制台会报警告信息,Vue对子组件调用父组件时的一种约束app.component("Counter", { props: ["count"], emits: ["add"], methods: { add() { this.$emit("add"); } }, template: ` {{ count }} <button @click="add">++</button&

2021-05-19 15:09:58 166

原创 安装@vue/cli遇到的坑以及相应的解决方法

当一个咸鱼级别的程序员,最难的往往不是写业务,最难的往往是各种环境问题,像我这种卤出来的咸鱼,就经常被环境问题绊倒在盐缸里,导致越来越咸鱼,莫得翻身。。。因为换了公司,需要重新装个@vue/cli,开开心心打开vue官网老老实实按步骤安装,最后竟然。。。。这很头疼,百度了一圈,很多方法,但是最终都以失败告终。。。。还好最好出现了一根救命稻草 @vue-cli的安装及vue项目创建简单梳理一下,就是需要添加一些环境变量,让系统在我们输入命令的时候知道去哪里找到对应执行的程序,步骤如下:① 首先要

2021-04-14 15:17:26 778

原创 重点复习

试述fireworks的特点活效果自动应用纹理和填充效果完整的文本控制组件文件导出预览批处理过程图像映射实例级按钮元件编辑制取切片与Dreamweaver的兼容性fireworks制作动画的三种方法合并图像形成动画使用元件生成动画效果手工绘制现在虚拟主机供应商的时候,主要应该考虑的问题服务器放置的位置主机与网络的连接速度主机所运行的操作系统磁盘空间的大小E-mail邮箱数量是否能够使用数据库是否支持FrontPage是否支持加密传输规划目录的原则不要

2021-04-10 22:31:18 212

原创 vue-router在新窗口打开

1.组件式导航,router-link 有一个target的属性<router-link to="/b" target="_blank">新窗口</router-link>2.编程式导航<p @click="newPage">新窗口</p>methods:{ newPage(){ let routerUrl = this.$router.resolve({ path:'/b', query:{id:96}

2021-03-30 10:50:25 172

原创 JS中switch case,多个case对于同一操作的写法

开头认个错,面向百度开发说的就是我,太久没有用switch了,今天想用它写几个判断,但是有两个不同条件是做一样的操作,但是忘了写法应该是怎么写了,首先就是百度了,果然百度结果没有让我失望。首先有一篇文章告诉我:switch (msg): case "a","b": console.log(msg); break;看着好像还挺有道理的,试试…额…b是有效了,a无效…于是继续度…又看到了一个写法:switch (msg): case "a" || "b": console.log(m

2021-03-24 10:35:56 6401

原创 00900网页设计与制作简答题和论述题

DHTML的主要优点有哪些?分别予以说明DHTML有三个主要优点:动态样式、动态内容和动态定位动态样式能使网页制作者改变内容的外部特征而不强制用户再次下载全部内容;动态内容可以使开发人员改变显示在一页上 的文本或图像,以便内容能够交互地对用户的鼠标和键盘操作做出响应;动态定位让页面制作者以自动方式或对用户的操作做出响应的方式移动页面上的文本和图像简述web浏览器的含义web浏览器就是一个运行在用户计算机上的程序,负责下载、显示网页,因此也成为www客户程序在css中的字体属性中,字体大

2021-03-16 15:11:53 4321 1

原创 00900网页设计与制作多选题

1.www的组成主要包括()A.URL B.GopherC.HTML D.HTTP E.Telnet2.下列关于IP地址与域名的说法正确的是()A.IP地址以数字表示,域名用字符表示B.IP地址是供全球识别的通信地址C.IP地址与域名是一一对应的D.域名可以多于三个层次E.IP地址与域名都限制在32位内3.一般来说,适合使用信息发布式网站模式的题材有()A.软件下载 B.新闻发布 C.个人简介 D.音乐下载 E.文学作品大全

2021-03-15 14:19:59 3872 1

原创 HTML、css、css3相关面试题

目录1.[如何让一个div垂直水平居中,分别用css和css3的多种方法实现](https://blog.youkuaiyun.com/weixin_38779534/article/details/114061254)(可点击查看详细)1.如何让一个div垂直水平居中,分别用css和css3的多种方法实现(可点击查看详细)...

2021-02-25 14:49:34 124

原创 如何让一个div垂直水平居中,分别用css和css3的多种方法实现

咳咳,同学,你先讲一下如何让一个div垂直水平居中,至少讲三种方法?这句话应该也都很熟吧,面试官的基操,当然这也是css中很有代表性的一道题了,作为前端领域的专业人员,你支支吾吾地就说不过去了吧,至少应该笑着说出四五个吧~~~话不多说,上方案,先看看css3之前的做法,分为知道盒子的宽高和不知道盒子的宽高两种,先看需要知道盒子的宽高的:方案一:利用margin:auto 自动适应<style>.parent{ position:relative; width:500px; .

2021-02-25 12:23:37 243

原创 Excel文件导出,前端导出或者后端导出

一般来讲导出都是后端完成逻辑,给接口给到前端,前端调用接口简单处理导出就可以了,但是上次我们公司做内部使用的后台,认为数据量小,前端导出实时更快,于是也有了前端导出的方式,做个总结。先过一下后端导出的做法以及需要注意的一些点://我是事先封装了一个请求的方法,然后是正常的请求,只是需要注意的是要加一个responseType: 'blob',因为后端返回的就是一个blob类型export function getDetailExcel (params) { return request({

2021-02-19 18:48:33 7892

原创 理解JS中的this指向,如何改变this的指向,call、apply、bind的用法

看了一个大佬写的,写得很详细,大家可以直接跳转:仙人跳跳跳跳说说this的指向?有什么方法可以改变this的指向?哈哈哈,这句话熟悉吧,面试官最喜欢的问题,其实说实话,我很少用到call、apply、bind这几个东西,可能我段位太低?特意问了一个段位比我高的前辈:好吧,虽然不常用,但是好歹面试需要,总得弄懂。咸鱼就是这样的,看钱办事,这东西能搞钱,那就学哈哈哈哈哈。this的指向...

2021-02-04 18:20:29 197

wxLogin.drawio

利用vscode-drawio参照微信登录画的流程图,主要是介绍 vscode-drawio 的用法

2020-11-17

超出页面宽度部分的菜单栏转为下拉列表.zip

横向菜单或横向列表超出浏览器宽度, 超出部分自动转变为下拉框代码, 导航菜单超出部分自动变换为下拉菜单

2020-05-12

空空如也

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

TA关注的人

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