星*空

Live beautifully,Dream passionately,Love completely


  • 首页

  • 标签

  • 分类

  • 归档

【翻译】async函数的一个注意点

发表于 2020-07-31

一、问题

这篇文章提醒大家注意,使用 JavaScript 的 async/await 函数时,要区分并发操作和继发操作。

你能看出下面代码的问题吗?

async function getPeople() {
  const members = await fetch("/members");
  const nonMembers = await fetch("/non-members");

  return members.concat(nonMembers);
}

花点时间看看。像这样的代码可能存在于很多的JavaScript代码库中。有时候,它就在那些了解他的人眼前,包括我自己。事实上,正是我所犯的这个错误促使我写下这篇文章。

阅读全文 »

【翻译】关于javascript函数作用域解释

发表于 2020-07-24

一、Quiz Time

如下的代码执行后输出什么呢?为什么?

function jerry() {
    console.log(name)
}

function tom() {
    var name = 'tom';
    jerry();
}

var name = 'cartoon';
tom();

上面的代码执行后是会输出 cartoon、tom或者undefined?但更重要的是,你是如何决定答案的呢?你是按Scope吗?还是执行上下文execution context呢?

二、Scope(作用域)

上面代码执行的答案是 cartoon,让我们来探讨深入理解一下。

In JavaScript, Scope is the mechanism to determine the accessibility of variables throughout its existence. It could be inside or outside of a function call.
在JavaScript中,作用域是在整个过程中确定变量可访问性的机制。它可以在函数调用的内部或外部。

我们来拆分一下上面的代码,去理解变量的可访问性随着变量的声明和函数的创建如何改变。

阅读全文 »

React Hooks 的常见错误写法

发表于 2020-07-10

原文地址(英文):https://www.lorenzweiss.de/common_mistakes_react_hooks/

1、在不需要再次render的时候使用useState

react的核心概念之一就是处理state,你可以通过state控制你的整个数据流和渲染(rendering),每次虚拟Dom树再次渲染时,都很有可能和state的改变有关。

通过使用useState hook你可以在函数组件中定义state,这样处理state就变得很简单整洁,但是当我们看到下面的例子时也会觉得困惑。

假如有两个按钮,一个按钮是计数器,另一个按钮负责发送当前的数值。然而,当前的数值并不在组件内展示,它只是在按钮发送请求中使用。

阅读全文 »

使用antd实现上传图片的表单操作

发表于 2020-06-23

一、antd介绍

antd 是基于 Ant Design 设计体系的 React UI 组件库,主要用于研发企业级中后台产品,有蚂蚁金服出品,本篇文章记录使用antd中upload组件与服务端配合实现文件的上传,本文中使用的antd版本是3.x版本。
官网:https://ant.design/index-cn

二、antd中使用upload、Form组件实现文件上传

1.具体功能
在一个服务记录的表单中,有一项是上传图片,需在保存表单的时候提交已经上传的图片地址
2.实现流程

  • 点击上传按钮,将图片上传到服务端指定的api接口
  • 服务端接口返回上传图片的地址链接
  • 将图片的地址链接绑定到表单的对应项
  • 点击保存按钮,提交表单
阅读全文 »

react Hook学习笔记

发表于 2020-06-19 | 分类于 React

一、什么是react Hook?

React可以分为两种,一种是继承React.Component的class组件,另一种是函数组件;在class组件中有生命周期以及当前组件的state,react为了能在函数组件中使用state和react特性,在react16.8之后增加了Hook特性;所谓的Hook就是一种特殊函数,可以使函数组件“钩入”react特性。

阅读全文 »

前端实现跨域方法总结

发表于 2020-06-11

一、同源策略

1、同源

指两个页面的协议、端口和域名都相同,则两个页面是具有相同的源

2、同源策略

同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。

3、不受同源策略限制的有哪些
  • script标签嵌入跨域脚本。语法错误信息只能被同源脚本中捕捉到。
  • link 标签嵌入CSS。由于CSS的松散的语法规则,CSS的跨域需要一个设置正确的 HTTP 头部 Content-Type 。不同浏览器有不同的限制: IE, Firefox, Chrome, Safari (跳至CVE-2010-0051)部分 和 Opera。
  • 通过 img 展示的图片。支持的图片格式包括PNG,JPEG,GIF,BMP,SVG,…
  • 通过 video 和 audio 播放的多媒体资源。
  • 通过 object、 embed 和 applet 嵌入的插件。
  • 通过 font-face 引入的字体。一些浏览器允许跨域字体( cross-origin fonts),一些需要同源字体(same-origin fonts)。
  • 通过 iframe 载入的任何资源。站点可以使用 X-Frame-Options 消息头来阻止这种形式的跨域交互
    阅读全文 »

深拷贝与浅拷贝

发表于 2020-06-01

一、问题背景

在刷一道比较简单的题目时,遇到一个容易忽略的问题,js对象的浅拷贝和深拷贝的问题,从而导致的输出结果不对;所以总结一下js中深拷贝和浅拷贝的问题。

二、浅拷贝
在javascript中数据类型有两种

基本数据类型:number,boolean,string,null,undefined;

该类型数据的赋值操作就是值的赋值,前后两者不相互影响

var num1 = 1;
var num2 = num1;
num2 = 3;
console.log(num1) // 1
console.log(num2) // 3

引用数据类型:object、array、function;

阅读全文 »

搞懂ajax、axios和fetch

发表于 2020-05-29

一、Ajax

Ajax(异步javascript 和 XML),其本身不是一种新技术,而是一种技术合集的新方法,用来处理浏览器与服务器之间的http通信,是一种异步请求的技术。其主要步骤如下:

  • 创建XMLHttpRequest实例
  • 发出HTTP请求
  • 接收服务器传回的数据
  • 更新网页数据

XMLHttpRequest对象是 AJAX 的主要接口,用于浏览器与服务器之间的通信,其本身是一个构造函数,可以通过new命令生成实例,新建实例后就可以调用open()方法发出http请求;但是在平时工作中如何用原生js实现http请求代码比较多,因此会使用很多封装好的ajax方法库,如jquery中可以使用$.ajax()发出http请求,但是jquery库比较庞大,如果仅仅是使用ajax请求,可以考虑只专注http请求的库,比如axios

阅读全文 »

在vue框架中实现九宫格抽奖

发表于 2020-05-22 | 分类于 Vue

一、功能实现
在近期开发的活动页面中需要实现九宫格转盘抽奖的功能,使用vue框架,这里记录一下具体功能实现的方法。
二、具体实现方法

  • 抽奖相关信息如奖品信息,抽奖次数等由服务端接口获取
  • 前端展示九宫格奖品信息,并实现点击抽奖后九宫格的顺时针点亮转动
  • 转动效果实现是每次点亮对应li标签的背景颜色

    阅读全文 »

webpack实战-读书笔记

发表于 2020-05-15

一、关于webpack

webpack是前端常用的打包工具,用来组织和管理模块包括html,css,js,图片等资源;其核心就是解决模块之间的依赖,把各个模块按照特定的规则和顺序组织在一起,最终合并成一个js文件或多个js文件,webpack可以理解为一个模块处理工厂。
核心概念:

  • 入口(entry)
  • 输出(output)
  • loader
  • 插件(plugins)
    阅读全文 »
1234
Liucheng

Liucheng

记录点点滴滴的进步

35 日志
5 分类
11 标签
0%
© 2021 Liucheng
本站访客数 人次 本站总访问量 次