最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

由ReactJS的Hello world說開來

 更新時(shí)間:2015年07月02日 11:37:10   投稿:goldensun  
這篇文章主要介紹了ReactJS的Hello world程序編寫及其相關(guān)知識,React是Facebook開發(fā)并開源的JS框架,人氣在當(dāng)下急劇攀升,需要的朋友可以參考下

這篇文章提供了代碼實(shí)例和在React.js(一個(gè)Facebook工程師開發(fā)的被用于構(gòu)建用戶界面的Javascript庫)中高水平的概念.這些概念會(huì)被詳細(xì)的發(fā)表在下面的文章里.在此,我必須提示如果你是一名ReactJS專家并且感覺這些代碼需要改善,請您把建議寫信給我,我會(huì)及時(shí)適當(dāng)?shù)母逻@篇文章/代碼.

在我繼續(xù)發(fā)表一些代碼實(shí)例之前,我必須特別的提出:初學(xué)ReactJS會(huì)有一點(diǎn)困難,因?yàn)樽罱乙恢痹贏ngularJS上寫代碼.到現(xiàn)在為止,我需要承認(rèn)他們之間在幫助我們做UI工作時(shí)有很大的不同.我將發(fā)表另一篇博文對比他們之間的主要差異.


然而,在較高的水平上,下面是一些原因關(guān)于我為何在學(xué)習(xí) ReactJS 時(shí)使用了略有些“陡峭”的學(xué)習(xí)路線:

  •     面向組件的:ReactJS是面向組件的,也就意味著,需要你將UI元素看作是組件。有趣的是,組件是可組合的。這意味著一個(gè)組件可以具有一個(gè)或多個(gè)內(nèi)部組件。下面的代碼演示了這一點(diǎn)
  •     JSX Syntax:它使用了一個(gè)有趣的JSX(XML式的)語法來編寫代碼。JSX轉(zhuǎn)換器(一個(gè)預(yù)編譯器)用來將這種語法結(jié)構(gòu)轉(zhuǎn)換為明顯的JavaScript

    事件代理模型:它遵循了事件委托模型,用以捕獲事件

下面是一些顯示在代碼中的關(guān)鍵概念:

  •     組件
  •     事件代理
  •     JSX 語法


以下是組件已實(shí)現(xiàn)內(nèi)容的簡要描述

- 輸入框元素,用戶可輸入其用戶名。在下面的文章中會(huì)提到,這個(gè)輸入框?qū)嶋H是“UserName”組件

- div層元素,用于展示“Hello, userName”。在下面的文章中會(huì)提到,這個(gè)div層實(shí)際是“HelloText”組件

以下是其如何設(shè)計(jì)的。此外,請找到能代表下面概念的代碼。


SayHello: 可組合的元件

SayHello是一個(gè)父組件,包含兩個(gè)組件。這個(gè)父組件是由兩個(gè)內(nèi)部組件構(gòu)成。其中一個(gè)組件是UserName,用來為用戶提供輸入姓名的功能,另一個(gè)組件是HelloText,用于展示文本,比如Hello,world。這個(gè)父組件定義了下列三個(gè)不同的API:

  1.     getInitialState
  2.     handleNameSubmit
  3.     render(這是一個(gè)必需的接口,一個(gè)組件需要定義render來告訴React響應(yīng)如何渲染組件) 
/
 // This is the parent component comprising of two inner components
 // One of the component is UserName which is used to allow user to enter their name
 // Other component is HelloText which displays the text such as Hello, World
 //
 var SayHello = React.createClass({
 // This is used to set the state, "data" which is 
 // accessed later in HelloText component to display the updated state
 // 
 getInitialState: function() {
  return {data: 'World'}
 },
 // It is recommended to capture events happening with any children
 // at the parent level and set the new state that updates the children appropriately
 handleNameSubmit: function(name) {
  this.setState({data: name});
 },
 // Render method which is comprised of two components such as UserName and HelloText
 //
 render: function() {
  return(
  <div>
  <UserName onNameSubmit={this.handleNameSubmit}/>
  <HelloText data={this.state.data}/>
  </div>
  );
 }
 });

UserName組件

UserName組件有下列兩個(gè)方法:

  1.     handleChange:用來捕獲onChange事件
  2.     render:用于渲染組件
var UserName = React.createClass({
 handleChange: function() {
  var username = this.refs.username.getDOMNode().value.trim();
  this.props.onNameSubmit({username: username });
  this.refs.username.getDOMNode().value = '';
  return false;
 },
 render: function() {
  return(
  <form role="form" onChange={this.handleChange}>
   <div className="input-group input-group-lg">
   <input type="text" className="form-control col-md-8" placeholder="Type Your Name" ref="username"/>
   </div>
  </form>
  );
 }
 });

HelloText組件

HelloText組件僅有一個(gè)方法用于渲染組件

 render:包含了展示HelloText組件內(nèi)容的代碼
 
var HelloText = React.createClass({
  render: function() {
  return (
  <div>
   <h3>Hello, {this.props.data}</h3>
  </div>
  );
  }
 });

如果你希望得到全部的代碼,我已經(jīng)將代碼掛在 github hello-reactjs page。請各位自由評論或給出建議。

相關(guān)文章

  • JavaScript判斷IE版本型號

    JavaScript判斷IE版本型號

    JavaScript判斷IE版本號,很簡單,需要的朋友可以參考下
    2015-07-07
  • JavaScript 詳解緩動(dòng)動(dòng)畫的封裝與使用

    JavaScript 詳解緩動(dòng)動(dòng)畫的封裝與使用

    緩動(dòng)動(dòng)畫原理:移動(dòng)的像素慢慢減少,讓效果看起來更柔和更美觀,通過定時(shí)器加回調(diào)函數(shù),實(shí)現(xiàn)動(dòng)畫效果以及更多具體功能,非常好用
    2021-11-11
  • javascript彈出窗口 window.open使用方法以及參數(shù)說明分析篇

    javascript彈出窗口 window.open使用方法以及參數(shù)說明分析篇

    window.open是網(wǎng)頁中經(jīng)常遇到的彈出窗口代碼,不是網(wǎng)絡(luò)中比較反感的那類彈出代碼。用于新頁面?zhèn)髦?,回傳等?/div> 2009-12-12
  • Javascript 入門基礎(chǔ)學(xué)習(xí)

    Javascript 入門基礎(chǔ)學(xué)習(xí)

    習(xí).net已經(jīng)近2年了,最近學(xué)習(xí)Ajax時(shí)發(fā)現(xiàn)自己的很多技術(shù)功底很是欠缺,比如JavaScript。今后我會(huì)將我正在學(xué)習(xí)的也寫成筆記,有時(shí)間的話將以前的東西整理整理也傳上來。
    2010-03-03
  • 你需要知道的JavsScript可以做什么?

    你需要知道的JavsScript可以做什么?

    你需要知道的JavsScript可以做什么?...
    2007-06-06
  • Javascript模塊化編程(一)模塊的寫法最佳實(shí)踐

    Javascript模塊化編程(一)模塊的寫法最佳實(shí)踐

    Javascript模塊化編程,已經(jīng)成為一個(gè)迫切的需求。理想情況下,開發(fā)者只需要實(shí)現(xiàn)核心的業(yè)務(wù)邏輯,其他都可以加載別人已經(jīng)寫好的模塊但是,Javascript不是一種模塊化編程語言,它不支持類class,更遑論模塊module了
    2013-01-01
  • JSON語法五大要素圖文介紹

    JSON語法五大要素圖文介紹

    JSON語法是一種輕量級的數(shù)據(jù)交換格式,易于人閱讀和編寫本文將詳細(xì)介紹,需要了解的朋友可以參考下
    2012-12-12
  • 基于JS腳本語言的基礎(chǔ)語法詳解

    基于JS腳本語言的基礎(chǔ)語法詳解

    下面小編就為大家?guī)硪黄贘S腳本語言的基礎(chǔ)語法詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • JavaScript的面向?qū)ο缶幊袒A(chǔ)

    JavaScript的面向?qū)ο缶幊袒A(chǔ)

    這篇文章主要介紹了JavaScript的面向?qū)ο缶幊袒A(chǔ),是JavaScript入門學(xué)習(xí)中的重要知識概念,需要的朋友可以參考下
    2015-08-08
  • JS中this的指向以及call、apply的作用

    JS中this的指向以及call、apply的作用

    本篇文章給大家分享了JS基礎(chǔ)內(nèi)容this指向以及call、apply的相關(guān)知識點(diǎn)內(nèi)容,有興趣的朋友可以學(xué)習(xí)參考下。
    2018-05-05

最新評論

沂南县| 桂平市| 洪泽县| 山西省| 宜宾市| 清流县| 安福县| 萝北县| 电白县| 扎赉特旗| 延寿县| 德格县| 山东省| 化隆| 张家港市| 改则县| 高清| 洪江市| 曲靖市| 霍城县| 利川市| 古田县| 三明市| 英山县| 始兴县| 利津县| 江西省| 新干县| 左权县| 普安县| 南昌县| 凌海市| 邯郸县| 临潭县| 江门市| 焉耆| 新绛县| 巧家县| 巩义市| 辽阳县| 孝感市|