React 定义组件的参数-生命周期

定义组件的参数-生命周期
创建期:getDefaultProps
创建期:getInitialState
创建期:componentWillMount
创建期:componentDidMount
存在期:componentWillReceiveProps
存在期:shouldComponentUpdate
存在期:componentWillUpdate
存在期:componentDidUpdate
销毁&清理期:componentWillUnmount

定义组件的参数-生命周期
生命周期相关参数,是React定义组件时提供的一系列处理函数(钓子函数),这些函数会在组件生命周期的某个阶段调用。

创建期:getDefaultProps

object getDefaultProps()

创建期:getInitialState

object getInitialState()
在组件挂载前(即:创建期)调用一次,其返回值将做为this.state的初始值。

getInitialState()方法会组件类创建的时候调用一次,其返回值会被缓存下来。该方法用于设置props属性的默认值,但仅对于非必须属性。如果父组件没有指定props中的某个值,此返回对象中的相应属性将会合并到this.props。

getInitialState()方法会在组件实例创建前调用,这时还不能使用this.props属性,且其返回对象是在所有实例间共享的。

创建期:componentWillMount

componentWillMount()
componentWillMount()服务器端和客户端都只调用一次,在初始化渲染执行之前被调用。如果在这个方法内调用setState()方法,render()方法将会收到更新后的state,也就是说这是我做在组件渲染前最后一个修改state的机会。

创建期:componentDidMount

componentDidMount()
componentDidMount()会在组件初始化(渲染完成)后立即调用一次,我们一般在这个方法中使用this.getDOMNode()方法访问原始DOM。

存在期:componentWillReceiveProps

componentWillReceiveProps(object nextProps)

componentWillReceiveProps在将要接受新的props时被调用
componentWillReceiveProps()方法会在组件生命周期的存在期调用,当组件感知到props属性改变,会调用此方法。render()方法将会在其后调用,这时我们可以通过this.setState()来阻止组件的再次渲染。

存在期:shouldComponentUpdate

boolean shouldComponentUpdate(object nextProps, object nextState)
shouldComponentUpdate()方法发生在组件生命周期的存在器,在组件收到新的props或state。在这个方法中,我们可以访问组件的props和state属性,通过这两个属性可以确认组件是否需要更新,如果不需要更新,则返回false,则其后的方法将不会在执行。如:

shouldComponentUpdate: function(nextProps, nextState) {
return nextProps.id !== this.props.id;
}

存在期:componentWillUpdate

componentWillUpdate(object nextProps, object nextState)
componentWillUpdate()会在收到新的props或state后调用,类似componentWillMount()。

存在期:componentDidUpdate

componentDidUpdate(object prevProps, object prevState)
componentDidUpdate()会在组件重新渲染后立即被调用,当我们需要在组件重新渲染后操作DOM则需要使用这个方法。

销毁&清理期:componentWillUnmount

componentWillUnmount()
componentWillUnmount()是组件销毁&清理期唯一调用的方法,它会在组件从DOM中移除时被调用,这时我们可以清理一些状态或清理在componentDidMount中创建的DOM元素。

现代人患上电脑依赖症,提笔忘字电脑当字典

“前两天看女儿写的作文,让我真是哭笑不得,写了不到一千字,错别字却不下二十个,还有不少字是自己创造出来的。我批评她,她还振振有辞地说是因为赶时间,不会写的字没有查电脑,不然不会错的。”刘女士无奈地告诉记者。随后,记者在采访中发现,随着电脑的日益普及,键盘逐渐代替了笔杆,很多人都表示写字的几率越来越小。用键盘打字很熟练,用笔书写反而变得困难,经常是提笔忘字,本来很简单的字到了写的时候却怎么也想不起来。

随着信息化社会的来临,许多人的工作和生活已经离不开电脑,“我们回头网上QQ或是BBS聊”,学生之间的这句话早已不再新鲜。QQ、BBS、MSN成为学生交流时应用的主要工具。由于电脑打字易于修改,很符合老师强调书面整洁的要求,被采访的大部分学生都称,乐意用这种方式取代手写,很少练习写字。而正是因为经常不练习,很多字词都被他们忘在脑后。兰铁一小的石老师告诉记者:“现在好多孩子在课堂上做作业的时候经常提笔忘字,有时候明明是一个很简单的字他们半天也想不起来,最后还自己创造一个。真是让人头疼。”

不只是学校的孩子们因为依赖电脑而提笔忘字,现在不少上班族也在为这个问题而头疼。陈敏是真正的“电脑族”,她办公室人手一台电脑,在家里她和老公也是各用一台。公司的文件资料、自己的日记,陈敏都是用键盘敲打出来的。用笔书写对于她而言,感觉是很遥远的事。最近,陈敏突然发现自己不会写字了,不是忘记字体的间架结构,就是忘记字体的笔画,有时甚至脑袋一片空白,一些简单字体的形状一时都想不起来,连辅导小学一年级的儿子做作业都遇到了困难。意识到自己严重退化的书写水平,她说自己现在开始重新提笔练字了。

“虽然我的工作主要是用电脑打字,但是前一段时间在填一份表格时,一个很简单的‘刊’字我想了半天也没想起来。另外,长时间不写字,猛一写起来感觉手很生硬,写出来的字特难看。”何小姐从事秘书工作,由于工作需要,她现在打字的速度一般在一分钟120个字左右,许多很难打的字词有五笔马上就解决了,“可是你要让我一分钟写 120个字,我估计连记不起来的和写错的最起码也要一半以上。”何小姐说。

电脑、手机成了“字典”

记者了解到,由于学校和家庭电脑普及率越来越高,提笔忘字已经呈现出越来越年轻化趋势。家住静宁路的林先生一脸愁容地向记者诉苦:“我家孩子现在不会写字了,字迹潦草不说,连基本的用词搭配都经常出错。”林先生的孩子小名叫东东,在市区某中学上初二。林先生说,东东的字以前虽然写得不好看,但非常工整。可自从今年二月份家里买了电脑以后,东东经常会在网上“泡着”和同学聊天,看书。最近他发现东东写作业时,经常会跑到电脑前敲打一会,一问才知道东东在写作业的时候经常记不起一些字,只好通过电脑的输入法“查查”不会写的字。“前一段时间去学校开家长会,老师说东东班上的好多孩子因为太依赖电脑已经不会写字了,经常是很简单的字想半天也想不出来。”

而王女士说,10岁的儿子很小就会摆弄电脑,网络、QQ、游戏已经成了儿子生活中很重要的一部分。“前两天他给自己起了个名,我根本看不懂,儿子说是最新流行的火星文!”王女士大感苦恼,儿子的字写得丢胳膊少腿,完全像“蟹爬”。遇到不会写的字,孩子不是去翻看字典,而是打开电脑,用拼音把需要的词组打出来,然后照着写在作业本上。她给孩子买的用于通讯的手机也成了“便携字典”,忘了字怎么写,就查一通。

不能忽略日常书写

“对于提笔忘字,一定要从自身做起,只有自己能解决这个问题。”从事教育工作30余年的李宁老师告诉记者,她虽然60多岁了,也会电脑,但她还是要求自己写东西时要坚持手写,因为这样,自己的大脑有想象的过程,这样对于汉字的记忆是深刻的。最好的办法就是坚持拿起笔,可以给远方的亲人朋友不定期写写信,在平日里,可以坚持记笔记,这样,提笔忘字肯定有改观。

“我并不排斥电脑的广泛作用,但在孩子成长、学知识的过程中,我不提倡中小学生长时间使用电脑。因为电脑输入比手写方便,会让中小学生对电脑产生依赖,甚至利用电脑从网上抄袭别人的作文,从小养成剽窃的不良习气。”李宁认为,解决“提笔忘字”问题一定要从孩子抓起。特别是中小学生在写作文时,一定要坚持手写,不能交电脑打印本,哪怕在电脑里先打草稿,最后也应该手抄一遍再交上去。她说:“无论电脑怎么普及,孩子在上中小学阶段打好写字基础是十分必要的,这个时期的孩子最好让他们少用电脑,孩子如果要用电脑,也最好在家长的陪同下用,家长和老师都要重视孩子日常书写的规范、端正。”她还建议学校不要把书法课视为“鸡肋”,因为书法课正是增强学生对汉字书写兴趣的最好方法。

(责任编辑:宁肇刚)