初探ES7 Decorator

装饰器装饰器是 ES7 新有的特性,它允许我们使用简洁的方式,为已有的类、类的方法、类的属性 添加有趣的修饰。     阅读全文
carvenzhang's avatar
carvenzhang 2月 01, 2018

cors跨域探讨

前端跨域前端跨域方案很多,jsonp、iframe等等,但是个人觉得,最正宗,最无损的跨域方式还是CORS。CORS(Cross-origin resource sharing)是一个W3C标准,翻译过来是跨域资源共享。它允许浏览器向跨域(协议、域名、端口任一不相同)服务器发送XMLHttpRequest请求。目前支持所有现代浏览器(>IE10)借阅了阮一峰大神的《跨域资源共享 CORS 详解》,结合自己的理解,说一说自己的CORS的领会。 简介CORS协议本身,可以说,完全是由浏览器执行的。对前端开发者而言,CORS是在浏览器检查到跨域请求的时候,自动发起的。对后台开发者而言,只要在headers中返回特定的信息(相当于白名单)–具体的CORS步骤,浏览器会根据headers中返回的信息做出具体的行为。 请求浏览器会自动将请求分为两类:简单请求、非简单请求。只要同时满足以下条件,就属于简单请求。 (1) 请求方法是以下三种方法之一:· HEAD· GET· POST(2)HTTP的头信息不超出以下几种字段:· Accept· Accept-Language· Content-Language· Last-Event-ID· Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain凡是不同时满足上面两个条件,就属于非简单请求。浏览器对这两种请求的处理,是不一样的。     阅读全文
carvenzhang's avatar
carvenzhang 11月 08, 2016

好用的分屏tab react-native-scrollable-tab-view

我们需要导航栏如果一个人每天都有惊喜的话,我今天的最大惊喜就是找到了一个react-native-scrollable-tab-view。我们在写一个应用的时候,总是会有需要,将多个页面放在一屏,通过导航栏切换,如微信、淘宝这时候我们需要一个组件来帮我们快速实现这个功能。     阅读全文
carvenzhang's avatar
carvenzhang 9月 02, 2016

前端小积累

一周周实习,很少时间写博客了,但本周的实习中,遇到了一些问题,可以说是争长了阅历,所以一定要好好记下来。遇到的问题主要是关于跨域和css3的; 下面我们探讨一下跨域问题,还是css3下的translate会导致显示模糊的问题。     阅读全文
carvenzhang's avatar
carvenzhang 7月 17, 2016

react-native使用cookie

前言不久前,因为课程需要,我使用react native搭建了人生第一个完整的app--一个广外的教务查询系统。祥见我的第一个react native项目总体上,那个项目可以分成三个部分 1、手机端app,负责展示数据2、爬虫服务器,负责爬取教务系统的信息,返回给手机端app3、广外的教务系统,显示学生信息在这一个系统中,爬虫服务器担当大任。当客户端传输登录的帐号密码的时候,爬虫服务器进行模拟登录,并保存cookie在缓存中,生成一个token返回给app;app此后凭借token向爬虫服务器请求信息,爬虫服务器根据token选取cookie,向教务系统爬取信息,处理后返回给客户端。毫无疑问,这是可行的,我也做成功了,凭借app获得了不错的分数。但是,后来想一想,这并不是最好的解决方案。我依赖于以前写的爬虫程序,运行在服务器上,做成了这一个系统。但是,手机客户端本来就是一个具有很强处理能力的终端,为什么要把这个工作屈身在一个服务器上呢。应该让每一个客户端做处理,拜托爬虫服务器才对啊     阅读全文
carvenzhang's avatar
carvenzhang 7月 03, 2016

我的第一个react native项目

前言当实习生还是很忙的,而且还要准备期末考试,很久没有记下自己的博客。前阵子因为大作业需要,用到了react native,现在才想起来一定要记下来给自己。 学习react nativereact因为日常开发有用到,所以也算是比较熟悉了,但是一直没有正式开始接触react native。所以这里不讲react了,单单是说在了解了react之后如何学习react native开发。寒假还没学习react,找实习的时候,一家公司一直跟我说,用了react就可以写多端应用。所以我脑子里一直有react write one, use anywhere的概念,知道真正学习了react,并且接触了react native之后,才会了解到react官网所说的learn one, write anywhere,react在不同端实现东西,仅仅是语法相同,要用到的组件之类的基本是完全不同的,所以写一套代码想在多端运行,基本是不可能的。 环境搭建就不说了。。自行谷歌。我学习react native的时候,所写的程序是一个电影列表,react native 中文网有相应的教程。通过这个教程,就可以大致了解到react-native所用到的各种基础组件(View, Text之类的),对flex布局有大致了解。同时,极客学院也有关于实现这个代码的教程     阅读全文
carvenzhang's avatar
carvenzhang 6月 15, 2016

js原生函数之call和apply,bind

call 和 applycall 和 apply 和 bind 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向。 js原生函数中的call和apply都不陌生,这两个方法的作用相似,接受两类参数。 第一类是context(上下文),传入的参数作为执行函数的上下文,也是要传入的第一个参数。第二类的argument(参数),传入的参数作为函数执行的参数,call是逐个参数传入,apply是将参数以数组方式传入。 应用如下 var callObj = {c:1}; var applyObj = {c:2}; function fun(a,b){ return a+b+this.c; } fun(2,3);//NaN fun.call(callObj,2,3);//6; fun.apply(applyObj,[2,3]);//7     阅读全文
carvenzhang's avatar
carvenzhang 5月 16, 2016

前端模块化开发

其实对前端模块化开发的接触时间并不多,很多见解都是别人的,或者是偏的, 还是乐意记录下来,谁让我一天一个念头说到前端模块化开发,其实是说 javascript 模块化开发。目前,大众讲到的 javascript模块化规范 有3种,CommonJS、AMD(异步模块定义)、CMD(通用模块定义)     阅读全文
carvenzhang's avatar
carvenzhang 3月 11, 2016

浅谈闭包

闭包 – closure, 应该可以说是javascript的一个难点吧, 其实说难也不难, 只是因为没有真正一个权威的人/书去给他一个真正的定义。不过,学编程的人一路都要有自己的理解,很少人乐意去v死记一个定义。自己看闭包也有很久了,但是每次回想起来又忘了自己改如何形容它, 它真的很难吗?其实并没有,每次看别人的博客,还是很快就能理清楚思路的,于是终究还是要自己写下来,自己给自己一个理解。 苍白描述闭包可以理解为,在函数(命名为A函数)内部创建一个内部函数,并暴露到A函数外部去(暴露方法可以是返回一个内部函数,或者将内部函数赋值给 全局/外部 变量),然后可以通过暴露出来的内部函数,操作A函数内部的变量。 所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。–阮一峰(学习Javascript闭包(Closure))     阅读全文
carvenzhang's avatar
carvenzhang 3月 11, 2016