自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 js的基础知识

1、JS中的基本类型和引用类型基本类型:undefined、null、string、number、boolean、symbol(ES6)普通基本类型:undefined、null、symbol(ES6)特殊基本类型:string、number、boolean引用类型:Object、Array、RegExp、Date、Function区别:引用类型值可添加属性和方法,而基本类型值则不可以。基本类型基本类型的变量是存放在栈内存(Stack)里的基本数据类型的值是按值访问的基本类型的值是不可变的

2021-03-03 16:12:06 121 1

原创 JS 中深拷贝的几种实现方法

// 方法一: 使用递归的方式实现数组、对象的深拷贝export function deepClone1 (obj) { const objClone = Array.isArray(obj) ? [] : {} if (obj && typeof obj === 'object') { for (const key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { i

2021-03-03 16:01:17 559 1

转载 import和require的区别

import和require都是被模块化使用1. a.require是CommonJs的语法(AMD规范引入方式),CommonJs的模块是对象。 b. import是es6的一个语法标准(浏览器不支持,本质是使用node中的babel将es6转码为es5再执行,import会被转码为require),es6模块不是对象2. a.require是运行时加载整个模块(即模块中所有方法),生成一个对象,再从对象上读取它的方法(只有运行时才能得到这个对象,不能在编译时做到静态化),理...

2021-02-25 17:43:50 156

原创 ./ ../与/三者之间的区别,以及path.resolve()与path.join()区别

2021-02-25 16:40:13 104

原创 前端处理下载后端返回的文件流

后端返回文件流,前端需要对返回的文件流处理进行文件下载先是发送请求的时候声明返回blob格式url: '',method: 'post',data: params,responseType: 'blob'//responseType: 'ArrayBuffer'然后将返回的数据传给downloadXls方法里,第二个形参是文件名称,然后系统就开始自动下载了function downloadXls(data, filename) { //接收的是blob,若接收的是文件流,需要转化一下

2020-11-03 10:13:37 2458 1

原创 Electron 在线/离线事件探测

概览可以使用navigator.onLine属性(标准HTML5 API的一部分)实现在线和离线事件检测。该navigator.onLine属性返回:false 如果所有网络请求都保证失败(例如,与网络断开连接)。true 在所有其他情况下。由于很多情况都返回了true,因此您应谨慎对待获得误报的情况,因为我们不能始终认为该true值意味着Electron可以访问Internet。例如,在计算机运行虚拟软件的情况下,虚拟软件的虚拟以太网适配器处于“始终连接”状态。因此,如果要确定Electron的

2020-10-29 11:17:52 383

原创 vue中静态文件引用

assets文件夹与static文件夹的区别区别一:assets文件是src下的,所以最后运行时需要进行打包,而static文件不需要打包就直接放在最终的文件中了区别二:assets中的文件在vue中的template/style下用…/这种相对路径的形式进行引用,在script下必须用@import的方式引入,而static下的文件在.vue中的任何地方都只要使用…/这种相对路径的方式引入,总结:1.assets用来放置样式、静态图片,只要src下面的组件中用到的资源就放在assets中。2.s

2020-10-29 10:46:36 535

原创 浅谈css3中display属性的flex布局

基本概念采用Flex布局的元素,称为Flex容器,简称"容器"。它的所有子元素自动成为容器成员,称为Flex项目,简称"项目"。容器默认存在两根轴:水平的主轴和垂直的交叉轴。Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。它即可以应用于容器中,也可以应用于行内元素。2009年,W3C提出了一种新的方案----Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,

2020-10-14 10:44:09 192

原创 解决Vue中事件(eventBus)$on()多次触发问题

项目中使用了事件总线eventBus来进行两个组件间的通信,使用方法是是建立eventBus.js文件,暴露一个空的Vue实例,如下:import Vue from 'vue'export default new Vue()在需要通信的两个组件中分别importimport eventBus from "common/utils/eventBus";然后就可以通过emit、on进行通信:如下://一个组件中发射eventBus .$emit('open_dialog',true);/

2020-09-29 16:44:56 2057

原创 vue-video-player在vue项目中无法显示controls按钮只有小方块

这几天做项目要用到视频播放插件vue-video-player,遇到了一个比较奇葩的问题,就是control栏的图标显示不出来,刚开始以为是css没有加载进来,审查元素才发现不是,一番折腾才发现是font字体没有被识别各种折腾才发现在项目的App.vue中发现一段css全局app.vue里把font-family写死了,将vue-video-player中标签的font-family覆盖了删除掉这一句css,video.js就正常了但是由于项目要求统一字体使用思源黑体,所以还有一种解决办法就是.

2020-09-29 15:35:39 3633 2

原创 javaScript实现图片放大镜效果

<!DOCTYPE html><html> <head> <title>javaScript实现图片放大镜效果</title> </head> <body> <div class="leftcon" id="left"> <img src="./yibo.jpg" /> <div class

2020-09-14 15:13:15 264

原创 vue项目中对USB检测

usb-detection 使您可以侦听系统上USB设备的插入/删除事件。安装npm install usb-detection使用var usbDetect = require('usb-detection');//开始监听USB添加/删除/更改事件。这将导致Node.js进程保持打开状态直到您调用usbDetect.stopMonitoring()usbDetect.startMonitoring();// 检测添加/插入usbDetect.on('add', function(

2020-09-14 11:51:51 3540 7

原创 禁止浏览器拖入图片打开新页面

let dropArea = document.getElementById('drop-area')dropArea.addEventListener('drop', (e) => { e.stopPropagation() e.preventDefault() e.dataTransfer.dropEffect = "none" })dropArea.addEventListener('dragleave', (e) => { e.stopPropagation

2020-09-14 11:32:49 564

原创 vue中使用iconfont图标库

阿里巴巴的iconfont是一个很好的图标库,海量的素材可以快速满足开发人员日常对图标的诉求,我们采用symbol引用创建SvgIcon组件<template> <svg class="svg-icon" aria-hidden="true"> <use :xlink:href="iconName"></use> </svg></template><script>export def

2020-07-09 09:01:13 468 3

原创 探究Vue中父子组件生命周期执行顺序

写一个有父子嵌套关系的组件,分别在他们的钩子函数中打印日志,观察执行顺序。得到的结果如图所示,父组件先创建,然后子组件创建;子组件先挂载,然后父组件挂载.Vue父子组件生命周期钩子的执行顺序遵循:从外到内,然后再从内到外,不管嵌套几层深,也遵循这个规律。...

2020-06-15 14:31:46 167

转载 使用git生成ssh文件

第一:打开git-bash(在git的安装包里)第二:检查ssh keys是否存在命令:ls -al ~/.ssh出现上述文字说明未有ssh keys。第三:生成新的ssh key:命令:ssh-keygen -t rsa -C “your_email@example.com” (因为失误此处截图被弄丢)过程中会有三次停顿,第一次是输入文件名字,第二次是输入密码,第三次是再次输入密码确认(无密码可以直接回车,密码不会被显示,直接输入即可)第四:完成创建公钥,此时可找到 .ssh打开

2020-06-04 14:19:34 649

原创 使用git将本地代码上传至github

第一步:建立git仓库新建一个本地仓库,其实也就是新建一个文件夹。最简单的创建方式就是直接在桌面鼠标右键,新建文件夹(test),然后进去该文件夹。鼠标右键,打开git -> Git Bash Here -> git init。执行命令后目录下创建一个.git文件夹。git init第二步:添加需要上传到github的代码到本地仓库如何添加,首先将需要上传的代码复制粘贴到本地仓库,也就是test文件夹。然后git status,这时候会发现多了一些东西,这些东西就是你刚刚复制进来的文

2020-06-04 14:11:46 155

原创 vue项目实现文件拖拽上传

1、基本代码<template> <div id="drop-area" :class="dropActive ? 'drop-active' : ''"> </div></template><script>export default { name:'index', data(){ return { dropActive:false } }, methods:{ dropEvent(e) {

2020-06-01 15:06:16 3356

原创 vue项目刷新当前页面的三种方法

最近项目加了一个新需求,游客模式在点击某些按钮是需要跳出登陆框,登陆成功后才可以生效,所以需要在登陆成功后重新刷新当前页面,下面总结了一些我的尝试方法:1、我一开始的想法就是使用这种方式,直接重新跳转至当前页面this.$router.replace({path:'/index'})试过后发现用vue-router重新路由到当前页面,页面是不进行刷新的,根本没有任何作用,所以这种方法是不可行的;2、然后就想到最直接的方式就是像ctrl+F5 一样强制刷新:location. reload()t

2020-06-01 14:39:28 2591

原创 Node.js 获取本机Mac地址

首先我们要先加载一个包用于获取mac地址npm install getmac加载完毕会在node_modules文件夹下发现一个getmac文件夹,我们把对应的路径加载到程序中源码如下:

2020-05-25 18:20:21 838 1

原创 element-ui之el-table翻页后仍然记忆所勾选项

在vue和element的组合开发时,element总有会不满足需要的情况发生,所以经常需要我们自己去想解决办法,下面就是我总结的对于element中el-table翻页记忆勾选项的例子<template> <div class="test"> <el-table :data="tableList" border :height="tableHeigt" @select="select"

2020-05-25 17:51:38 974

原创 使用js准确获取当前页面url信息

在web开发中,我们会经常用到js来获取当前页面的url网址信息,下面就是获取url信息的一些小总结。举例url,然后获得它的各个组成部分:https://editor.csdn.net/md?articleId=1062815831、window.location.href(设置或获取整个 URL 为字符串)var data = window.location.href;console.log(data);//https://editor.csdn.net/md?articleId=106281

2020-05-22 16:21:25 167

原创 实现js时间戳与日期格式之间的互转

1. 将时间戳转换成日期格式 //获取一个时间对象var date = new Date(时间戳); //下面是获取时间日期的方法,需要什么样的格式自己拼接起来就好了date.getFullYear(); // 获取完整的年份(4位,1970)date.getMonth(); // 获取月份(0-11,0代表1月,用的时候记得加上1)date.getDate(); // 获取日(1-31)date.getTime(); // 获取时间(从1970.1.1开始的毫秒数)date.ge

2020-05-22 14:56:54 144

原创 vue实现点击按钮选中复制

<template> <p id="copy-content">{{shareContent}}</p> <el-button @click="copyShare">复制分享链接</el-button><template><script>export default{ data(){ return { shareContent:"分享内容" } }, methods:{ copyShare

2020-05-20 16:34:38 674

转载 CSS布局解决方案(终结版)

前端布局非常重要的一环就是页面框架的搭建,也是最基础的一环。在页面框架的搭建之中,又有居中布局、多列布局以及全局布局,今天我们就来总结总结前端干货中的CSS布局。居中布局水平居中1)使用inline-block+text-align(1)原理、用法原理:先将子框由块级元素改变为行内块元素,再通过设置行内块元素居中以达到水平居中。用法:对子框设置display:inline-block,...

2020-05-05 10:48:20 110

转载 解决ie9/ie10项目报错,打不开问题

一般情况下,我们在ie上报语法错误,都会先进行安装npm install --save babel-polyfill,然后引包import ‘babel-polyfill’;但是现在已经引入babel-polyfill后也出现一些特殊的情况。比如在ie11上能够正常显示,但是用ie10或ie9项目会打不开,并且报语法错误。如下图:点击错误会进入到一个错误定位的地方,测试环境的代码会直接定位到错...

2019-08-15 15:22:00 560

转载 20个让你效率更高的CSS代码技巧

在这里想与你分享一个由各大CSS网站总结推荐的20个有用的规则和实践经验集合。有一些是面向CSS初学者的,有一些知识点是进阶型的。希望每个人通过这篇文章都能学到对自己有用的知识。1.注意外边距折叠与其他大多数属性不同,上下的垂直外边距margin在同时存在时会发生外边距折叠。这意味着当一个元素的下边缘接触到另一个元素的上边缘时,只会保留两个margin值中较大的那个。例如:HT...

2019-08-05 17:54:45 109

转载 前端初学者对html语义化标签的理解

1、什么是HTML语义化      根据内容的结构(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码。2、为什么要语义化为了在没有CSS的情况下,页面也能呈现出很好地内容结构、代码结构; 用户体验:例如title、alt用于解释名词或解释图片信息、label标签的活用; 有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息,爬虫依赖于标签来确...

2019-02-01 11:07:41 260

空空如也

空空如也

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

TA关注的人

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