ReactJs
今天又有了一些收获。我有个需求是从子组件中获取数据,然后在父组件中展示。这时就需要父组件给子组件传递属性或方法,子组件通过操作这些属性和方法就可以把数据以函数参数的方法传递给父组件中,这样就可以在父组件中展示自组件的数据了。当然通过这种方式,也可以把父组件的数据传递给自组件调用
还有一个需求是这样子的,就是获取数据库中的内容展示在网页上。这时需要一个文件来做数据库,然后通过route的方式来获取从数据库中得来的数据。
route的数据是指调用一个网页fetch(url),然后就可以执行这个url中请求数据库的函数。这个route需要在index.js中配置。注意,请求数据库的操作是异步的,所以这个fetch方法要在componentDidMount这个生命周期中调用。
ReactJs通过state这个属性来动态改变网页展示数据。通过在getInitialState中初始化state的参数,然后通过this.setState({})来动态的改变这些数据。这样就可以动态的改变展示的数据了。
NodeJs
今天看了看NodeJs,注备用NodeJs来做自己的前端功能。NodeJs是一个Js的runtime。也就是一个Web服务器。这个runtime的最大特点是异步,因为它是对chromium V8的封装。异步让它在渲染Js时有很高的性能,目前V8是性能最好的Js渲染引擎。
所谓异步就是在请求和处理之间有个分发loop,当有请求时,loop把这个请求分发给处理线程,记录请求的callback函数。当处理线程执行完请求后,就会去执行callback函数。(执行callback的线程和执行请求是不是一个线程这个没看,感觉应该是一个线程)
异步有好处也有坏处。坏处就是在写顺序执行的代码时会挺麻烦。因为要把顺序执行的代码不断的写在上一个请求的callback中。所以之后出来了Koa等框架来解决这个不舒服的地方。
今天还让一个同事帮着写了一段正则表达式,被震住了。正则表达式也是腻害啊!
————————————————————————————
JavaScript & ReactJs
今天是11月23号,来公司实习已经整整4个月多3天了。最近着手改一个web页面,需要用到Js,加上最近火到天的ReactJs,所以就来学习Js了。但是Js毕竟不是我的主要方向,所以这次学习大有张无忌被赵敏逼着和张三丰学太极一样——要快。于是,这次学习主要是学习Js的语法,以及工作流程。从上周一学到现在,终于在今天下午写出了一个小demo,特在此记录一下。
之前一直是学习Java,C++这些常规语言。Js和这些语言还是有挺多不同的,特别是工作方式上。但是记住Js的编译器是解释执行的,而且浏览器自带Js编译器这件事后,很多在Java中奇怪的现象就可以解释了。很明显的一点,就是Js写好后,不用编译,直接在浏览器打开就能用了。这点很弱智,但是很容易忘了。
好了,说点正常的。Js是无类型语言,所以在写代码时很灵活,我感觉它比python还要灵活。它的语法其实与Java还是挺像的。但是在创建对象这件事上,和C系语言还是相差蛮大。首先,它的对象创建有很多方法,如常规的new 构造函数,从prototype中赋值。最神奇的是任何一个函数都可以赋值成一个对象。
对象中另一个大区别是Js有原型prototype这玩意,以我个人的理解,这个原型对象类似super,每个类都有。this的用法和Java的差不多。
在数据存储上面,Js貌似没有像C系语言那样封装好了很多数据结构如ArraryList,HashMap这样的东西来用。不过Js的数组貌似把这一套都代替了。Js中的数组很灵活,很强大。数组能用出container的效果。所以要注意对数组的使用。
之后就是对于html接点的操作了。这里我用了React的方法,说实话,语法清晰,操作节点挺方便的。这里的主要教程就去React Js的官网看吧。这里只提供一些细节。就是render:funtion(){return();},中return中要有html语法和Js语法混用时,Js语法要用{}括起来。还有ReactDom.render中只能出现一个root节点。
好了,就这么多。关于Jquery,Ajax等内容。我只是看了看,没有仔细去看。等到具体的使用环境下再去用。
通过这次学习Js,可以总结出,学习新语言要快速翻看它的函数语法,类语法,工作方式。这样子能够很快的写出demo,至于深入理解,以及这个语言的各种框架,根据自己的实际需求去学习。这样子是正确的快速方法