![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
utils
文章平均质量分 92
Monkey_shuo
web前端程序员
展开
-
React直接渲染从后台传过来的<html>标签
在工作中使用react,遇到需要渲染从后台获取到的标签语言,发现直接放在react中是不能解析标签语言的。解决办法如下:var content = '<strong>content</strong>';// 假设content是从接口获取到的数据react.render( <div dangerouslySetInnerHTML = {{ __html:content }}></div>,原创 2017-03-10 11:43:23 · 17866 阅读 · 0 评论 -
当多个<router />使用同一个组件的时候,切换页面地址,页面不刷新的问题
如标题所说的问题,更详细一点就是多个router使用同一个react页面组件的时候,当切换路由的时候,页面组件不重新构建,页面也不刷新。例如:router.jsimport Index from './routes/Index/index';import UserAccount from './routes/UserAccount/index';const Root = () =>( <R原创 2017-11-14 11:43:25 · 7263 阅读 · 1 评论 -
如何绕过chrome的弹窗拦截机制
在chrome的安全机制里面,非用户触发的window.open方法,是会被拦截的。例如事件触发的js是不会被拦截的:var btn = $('#btn');btn.click(function () { ... ... ... //不会被拦截 window.open('http://cssha.com')});再例如:var btn = $('#btn'原创 2017-09-25 14:53:30 · 5015 阅读 · 0 评论 -
对象的深clone
这个在很多公司的面试题中都会有,下面我们来实现下对象的深clone;function clone(obj) { if(typeof obj === 'object') { var resule = obj instanceof Array ? [] : {}; for (var i in obj) { var attr = obj[i]原创 2017-06-26 11:10:36 · 222 阅读 · 0 评论 -
原生ajax
很多js库会对ajax进行封装,我们直接调用即可,即使不理解其原理也能顺利完成接口调用功能,但是我们还是需要了解他的底层原理。话不多说,直接上代码:我们首先要确定浏览器的类型,是IE还是非IE浏览器var XHR = null;if(window.XMLHttpRequest) { XHR = new XMLHttpRequest()} else if (window.ActiveXO原创 2017-06-25 17:01:21 · 302 阅读 · 0 评论 -
for...in...循环搭配对象解构赋值的易错点
当我们使用for…in…循环一个对象,并在循环体中执行对象的解构赋值,有一点很容易出错。直接看下面例子:let formInit = { one: { value: 2 }, two: { value: 2 }};let data = { one: 1, two: 3};for(var key in formIn原创 2017-06-16 12:14:53 · 1482 阅读 · 0 评论 -
跨域
相信很多人在工作中遇到过很多跨域问题,下面来说一下跨域:1.什么是跨域? 简单来说就是,同一个IP,同一个网络协议,同一个端口,这三者都相同就是同一个域,否则就形成了跨域;对于web开发来说,由于浏览器的同源策略,我们是不能够跨域访问的,但是工作中很多情况下我们需要跨域,尤其是前后端分离的初期,很多后端接口还没有做CORS(跨域资源共享),这就需要前端同学去解决跨域问题; 2.跨域方法: 如果原创 2017-04-25 15:55:18 · 258 阅读 · 0 评论 -
ES6数组的解构赋值和Set
js发展到ES6阶段,代码简介了很多,同时也提供了很多方法,下面说下数组的解构赋值和Set:1.数组解构赋值数组的解构赋值,这个很简单,直接看代码: 最简单的一个例子:var [a,b,c] = [1,2,3];console.log(a); // 1console.log(b); // 2console.log(c); // 3复杂一点:let [foo, [[bar],baz]] = [原创 2017-05-25 17:30:38 · 1157 阅读 · 0 评论 -
ES7的async和await,目前最为简略的异步解决方案
随着js的发展,在解决回调地狱问题的方案上,解决方案逐渐更新,有promise、generator和现在的async都是比较常见的; 1.Promise 这个解决方案就是把异步用同步的方式写出来,一步一步的.then()方法,前一个.then()执行完之后,继续执行下一个.then();function timeout (time) { return new Promise((res,原创 2017-03-30 18:57:15 · 1852 阅读 · 0 评论 -
<input type='file' />选择图片不上传,在页面中显示的功能。
在工作中有这样的需求,在页面中通过选择图片,不通过上传服务器,并在页面中显示出来的功能;(虽说这样做很变态,选择完图片上传到服务器,通过返回的图片地址去渲染图片才是正道,但是有些时候需求就是这样,没有办法~)闲话到此,贴出代码:document.getElementById('selectImg').addEventListener('change',()=>{ const file原创 2017-03-10 16:05:50 · 1749 阅读 · 1 评论 -
Promise实现图片动态加载
一个基于es6的promise实现图片动态加载。function loadImageAsync(url) { return new Promise((resolve, reject)=>{ var image = new Image(); image.onload = function () { resolve(image);原创 2017-03-10 11:18:56 · 2762 阅读 · 0 评论 -
VSCode插件整理
一、安装插件前端统一开发工具:VSCode插件整理。首先,如果你不知道怎么安装编辑器插件,那么请记住这个图标:二、插件推荐1.(必备)Auto Close Tag:自动添加HTML/XML关闭标签https://code.visualstudio.com/updates/v1_16#_html-close-tags这个插件是必备的,提高开发效率的东西,无论用js框架,html作为前端...原创 2018-11-13 14:50:07 · 3172 阅读 · 0 评论