6 Colin_Mindset

尚未进行身份认证

你关注到了我,是个概率极低的事件......

等级
TA的排名 2w+

React Native展示富文本(HTML标签)最佳解决方案

需求背景我们最近要做一个ReactNative的产品详情页,里面有一部分内容展示的是服务端下发的html标签(运营人员编写的,内容不固定,且很随意)。需求点是:1、展示富文本,包括img、span、div等基本html标签;2、控制富文本的整体样式,比如业务配置的图片大小不一,我们要统一已屏幕宽度为基准,高度自适应。第三方组件react-native-htmlview要实现这个需求,我第一...

2019-06-06 18:34:38

【web安全】深入浅出XSS攻击

在学习JS的过程中,你一定听说过CSRF攻击和XSS攻击。关于CSRF攻击,我已经在之前的文章中介绍过了,本文就来介绍一下XSS攻击。XSS定义和原理发出请求时,XSS代码出现在url中,作为输入提交到服务端,服务端解析后响应,XSS代码随响应内容一起回传给浏览器,最后浏览器解析并执行XSS代码。XSS防御措施一般xss防御措施有三种:编码过滤:原样显示用户输入内容时,要把不合法的内...

2019-05-02 14:56:35

箭头函数this指向的陷阱

箭头函数没有this!箭头函数没有this!!箭头函数没有this!!!重要的事情说三遍!那你可能要问我在箭头函数中明明可以取到this啊!function foo() { this.a = 1 let b = () => console.log(this.a) b()}foo() // 1以上箭头函数中的this其实是父级作用域中的this,箭头函数...

2019-04-27 17:33:15

【跨域】jsonp看完这篇文章就够了

jsonp是一种jQuery提供的跨域解决方案,我们今天来好好讲讲jsonp。同源策略所有浏览器都会使用同源策略这个安全策略。所谓同源,是指协议、域名、端口号都相同。没有同源的两个危险场景设想在用户访问淘宝时,进行了登录操作,并且登录信息写进了cookie。这时,你突然看到了一个广告,点击跳转进了一个广告链接。如果没有同源策略,这个广告页可以向淘宝发起请求,而由于登录信息已经写进了co...

2019-04-21 16:36:06

require和import有啥区别?

今天在研究react的lazyRequire时突然想到了这个问题,于是展开了一些列研究。。要回答这个问题,必须从模块化说起。所谓模块化主要就是解决代码分割、作用域隔离、模块之间的依赖管理。通常一个文件就是一个模块,有自己的作用域,只向外暴露特定的变量和函数。流行的模块化规范有:CommonJS、AMD、CMD、ES6的模块系统。这里简单介绍下CommonJS规范和ES6 Module...

2019-04-10 21:26:42

不妨这样去理解JavaScript中的dom和bom

JavaScript是由三大部分组成:核心ECMAScript、文档对象模型-DOM、浏览器对象模型-BOM。这里我们主要来讲解下BOM和DOM。一. DOMJavaScript可以通过DOM来获取文档里的标签、属性等内容,也可以用来操控文档内容Document文档,这里的文档指的是XML和HTML的页面。当你创建一个页面并且加载到浏览器中,DOM就悄然而生。Object在学习Jav...

2019-04-09 00:10:34

摆脱create-react-app,来让我们自己搭建一个react脚手架

创建一个文件夹REACT-CNODE-TEACHmkdir REACT-CNODE-TEACH在文件夹中npm init(我们使用npm来管理依赖包)一路点回车就行,当然你也可以去详细配置下工程信息。装一个webpack一个react工程,怎么能不安装react?这个时候我们要配置一下webpack,我们先在工程根目录创建一个文件夹build,然后创建一个webpack配置文件...

2019-04-09 00:03:33

封装一个在react上更易用的redux框架

redux框架相信大家都已经用的很多了,不知道你们用的还习惯吗?我们在项目里反正用的都是

2019-03-24 22:40:34

JS数组的几个有逼格操作

1. 去重Array.from(new Set([1,2,3,3,4,4]) //[1,2,3,4][...new Set([1,2,3,3,4,4])] //[1,2,3,4]2. 排序[1,2,3,4 ].sort (); // [1, 2,3,4],默认是升序[1,2,3,4].sort((a,b) => b - a); // [4,3,2,1] 降序3. 求和[1,...

2019-03-19 23:39:21

颤抖吧!一起手写一个redux框架!

redux是一个前端架构,经常和react一起使用。你要用react.js基本上都要用到redux和react-redux,但这两者并不是一个东西!redux是一个前端框架,你可以把它用到react、vue,设置jquery。react-redux是把redux这个前端架构结合到react形成的库,就是redux架构在react中的体现。话不多说,我们来从头手写一个redux框架。用c...

2019-03-06 20:51:48

聊一聊如何使用context,这是学习redux源码的基础哦

在学习redux源码一段时间之后,我发现不懂得context如何使用已经阻碍到我理解redux的设计思想了。。所以,这里介绍一下react的context如何使用,不过这个api可能你在业务开发时永远不会用到。。好了,废话不多说,我们来讲解下context如何使用。一. 如何使用context?想象一下,我们有现在这样一个页面(Index),其组件树长成如下这个样子:假设这个组件树里的...

2019-03-05 13:45:20

JavaScript的事件循环与宏微任务

本文记录了作者在研究JS的宏任务和微任务的过程中如何抽丝剥茧,理清原理的。阅读本文大概需要二十分钟一. 理论基础1. 引擎和runtime引擎:解释并编译代码,把它变成能在机器上运行的代码。我们都知道JS是解释型语言,因为JS是没有办法直接运行在机器上的,需要一个引擎把它变成能在机器上运行的代码。JavaScript引擎的基本工作就是把开发人员编写的代码转换成高效、优化的代码,很多人把...

2019-02-28 21:04:12

三分钟带你理解JS原型

一. 理论基础1. 普通对象和函数对象JavaScript中,万物皆对象!但是对象也是有区别的,分为普通对象和函数对象。function F(){}; //F:函数对象var f = new F(); //f: 普通对象2. 构造函数与大部分面向对象的语言不同,JavaScript中并没有引入类(class)的概念,但JavaScript仍然大量使用了对象,为了保证对象之间的联系,J...

2019-02-21 14:16:22

【JS基础】从零开始带你理解JavaScript闭包--我是如何彻底搞明白闭包的

一直有一些刚入门js的朋友问我“什么是闭包?”,这里我就专门总结一下,下次再有人问起来,就直接把这篇文章给他看好了。什么是闭包?其实很简单啊。闭包就是一个函数(外部函数)内部又定义了一个函数(内部函数),内部函数可以访问外部函数中声明的所有变量。其实就是这样简单,可是官方解释就比较晦涩了:闭包是一个拥有许多变量和绑定了这些变量环境的表达式。接下来,理解闭包还需要知道闭包的几种写法和用法。...

2018-10-09 19:35:14

【算法与数据结构】经典排序算法总结

1. 冒泡排序时间复杂度:o(n2)过程:一开始交换的区间是0-(N-1),也就是整个数组的整体;然后第一个数与第二个数进行比较,哪个大,哪个就放在后面;然后第二个数与第三个数进行比较,哪个大,哪个就放在后面;这样依次交换下去,最大的数就被放到了最后;然后把交互区间从0-(N-1),变为0-(N-2),这样第二大的数就被放到数组倒数第二的位置;这个过程进行下去,直到区间就只有一个数;这样数组...

2018-10-03 20:47:02

【编程框架】Android可配置的ScrollView框架

给大家推荐一下我最近刚写好的“可配置的ScrollView框架”,凡是采用scrollView结构的业务页面都可以采用这个框架。该框架主要有以下几个优点:1、scrollView中的每个模块位置走配置,有一个configuration类统一管理2、业务代码模块化。activity里不再充斥了各种业务代码,每个模块的业务代码分别在自己的模块里实现3、layout布局模块化。每个模块的布局都写在...

2018-09-27 16:34:26

【Android基础】讲讲Android的事件分发机制

Android的事件分发机制涉及的知识点很多,为了方便记忆和知识总结,小编决定专门开一篇文章,记录相关知识。 话不多说,我们直入主题。面试场景今天找到了几个自己之前校招时记录的关于事件分发的几个面试题。 讲讲Android的事件分发机制基本会遵从Activity => ViewGroup => View的顺序进行事件分发,然后通过调用onTouchEvent...

2018-07-26 15:38:35

【设计模式】最常用的设计模式之一的观察者模式

这是之前做的“产品详情页”的长截图,这里讲解一下这个页面与“观察者模式”的关系:在活动季,底部的“开始预订按钮”会变成“秒杀按钮”(所谓秒杀按钮,就是一个显示成灰色不可点击,并且一直处于倒计时状态的按钮,直到到达秒杀时间,比如0点整,秒杀按钮才由灰色变为橘黄色,并且可以点击), 当秒杀时间到时,不光底部的“秒杀按钮”变为“开始预订按钮”,可选班期的几个按钮也从灰色不可点击状态,变为白色可点击状...

2018-07-19 12:01:56

android studio compiled code 之 记录一次艰难的android studio采坑之旅

不知从哪个时间点起,我的android studio就不能查看jar包里的源码了… 这个过程是极其痛苦的: - 要想查看jar包里的源码,只能去网上找网页版的… - 同事用我的电脑分享时,每每看到源码层就哭笑不得… 给大家看一下我看到的okhttp源码是什么样的真的生无可恋了…每次研究了半天都没进展的话,我就放下继续去做手头的事了,直到最近有空研究下,才真正解决了这个问题...

2018-07-18 11:48:47

【设计模式】单例模式的六种实现方式

记得几年前校招的时候,被某家公司要求手写单例模式,当时被问到时心里还在想“这么基础的问题还要问”,不过真的问到一些细节的时候,我答得还真不是太好。今天在看Glide源码时,突然想到可以总结出常用开源框架共通的东西,这也许才是研究源码的真正目的吧。 最近看的几个源码中都涉及到了单例模式,索性就在这里总结一下吧。饿汉式public class SingleTonEHan { //...

2018-07-17 17:01:28

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。