
前端
__浩
这个作者很懒,什么都没留下…
展开
-
网页销毁时发送请求 - Beacon
一般页面卸载请求是在 unolad 方法里面,使用AJAX请求发送。但是,异步 AJAX 在unload事件里面不一定能成功,因为网页已经处于卸载中,浏览器可能发送,也可能不发送。为了解决网页卸载时,异步请求无法成功的问题,浏览器特别实现了一个 Beacon API,允许异步请求脱离当前主线程,放到浏览器进程里面发出,这样可以保证一定能发出。window.addEventListener('unload', function (event) { navigator.sendBeacon('url',原创 2021-07-28 16:47:13 · 470 阅读 · 0 评论 -
常用的css伪类选择器
什么是css伪类CSS伪类是用来添加一些选择器的特殊效果,是用于已有元素处于某种状态时为其添加对应的样式,这个状态是根据用户行为而动态变化的。例如:当用户悬停在指定元素时,可以通过:hover来描述这个元素的状态,虽然它和一般css相似,可以为已有元素添加样式,但是它只有处于DOM树无法描述的状态下才能为元素添加样式,所以称为伪类。在感觉上伪类可以是动态的,当用户和文档进行交互的时候一个元素可以获取或者失去一个伪类。例外的是":first-child"能通过文档树推断出来,":lang"在一些情况下也原创 2021-03-30 11:44:51 · 448 阅读 · 0 评论 -
前端开发规范
1. 项目结构规范1.1 项目结构的核心思想业务功能模块的相关代码都集中在一块,方便移动和删除实现关注点分离,方便开发、调试、维护、编写、查阅、理解代码1.2 项目目录 ├── vue.config.js/ # webpack 配置文件; ├── config/ # 与项目构建相关的常用的配置选项; │ ├── index.js原创 2021-02-28 16:57:42 · 422 阅读 · 0 评论 -
vue组件的change回调如何在使用自定义传参的条件下保留默认传参
vue项目经常使用到input、select组件,组件再带的change等事件会提供默认传参,不覆盖默认传参的情况下要传入自定义参数有一下两种方法:<Cascader :disabled="data.key === 'root'" :options="sourceTableList" :props="treeprops" @change="方法名($event, '自定义参数')"></Cascader><Cascader :原创 2020-06-29 11:39:26 · 1394 阅读 · 0 评论 -
forEach无法改变基础数据类型的问题
最近在项目中使用到forEach去循环字符串数组,发现无法改变字符串的数据。var arr = ['11','22']arr.forEach((el) => { el = '333'})console.log(arr) ['11','22']发现上面的代码没有效果。就去各种查阅。其实在项目中用到forEach的时候也不少,但从没去深入了解过它的实现原理。经过多方查阅,发现其实还是栈与堆内存的问题,字符串是基础数据,存放在栈中,循环出来的el相当于在栈中新建了一个变量,与原来的数据已原创 2020-05-22 18:58:11 · 701 阅读 · 1 评论 -
项目中实现在线预览office文件
最近项目中需要前端页面预览office文件,word、excel、ppt,现有如下几种解决办法,包括前端后端1.使用微软提供的office在线预览,提供下载,打印pdf等功能,无法自定义。使用方法http://view.officeapps.live.com/op/view.aspx?src=$url(url为文件所在地址URL,需要部署在线上,可以访问的URL,IRL路径必须通过URL编码)...原创 2020-04-26 18:06:25 · 3733 阅读 · 0 评论 -
react生命周期
React组件的生命周期分为三个阶段:1.组件初始化 Mounting2.组件运行时 Updating3.组件卸载时 Unmounting组件初始化1.constructor()constructor()中完成了React数据的初始化,它该构造方法接受一个props参数,必须在方法中首先调用super(props)才能保证props被传入组件中。注意:只要使用了constructo...原创 2020-02-29 21:03:51 · 474 阅读 · 0 评论 -
react-route-dom
介绍使用React构建应用时,需要使用路由实现页面跳转。在React中,常用react-router-dom包实现路由跳转。本文主要针对react-router-dom进行说明安装首先进入项目目录,使用npm安装react-router-dom: npm install react-router -S引用import React, { Component } from "react";...原创 2020-01-28 18:32:22 · 223 阅读 · 0 评论 -
Vuex
本文简单讲解Vuex的核心概念,个人理解,仅供参考。首先Vuex 是什么?Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。简单理解就是,可以存储项目中用到的公共的变量、方法等,可以在其他模块很方便的调用。更改(并且触发更新相关联的 DOM)。核心概念state状态树,包含了所有的...原创 2019-12-04 18:18:22 · 148 阅读 · 0 评论 -
栈与堆,深拷贝与浅拷贝
栈与堆的定义栈 stack为自动分配的内存空间,它由系统自动释放;堆 heap则是动态分配的内存,大小不定也不会自动释放。js数据类型基本类型 undefined、null、string、number(注意:NaN)、boolean、symbol(ES6)引用类型 Object(包括Array和Function)基本数据类型存放在栈里,=:直接传值引用数据类型存放在堆里,=:传址...原创 2019-10-31 16:02:24 · 648 阅读 · 0 评论 -
vue $set 动态刷新视图
开发过程中,我们有时会遇到这样一种情况:当组件data里边声明或者已经赋值过的对象或者数组,向对象中添加。或删除属性时,视图是不会动态刷新的。官方说法是:如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。例子:封装过后的表单组件,名称为必填选项,可是填写过名称内容后,还是没有通过验证,这是因为属性在赋值的时候表单组件并没有动态刷新,所以导致验证时数据还是为空。Vue 不允许在已经...原创 2019-09-29 18:02:54 · 627 阅读 · 0 评论