第二節 顯示頁面標題

来源:http://www.cnblogs.com/biqian/archive/2016/03/13/5274116.html
-Advertisement-
Play Games

# 代碼 項目剛創建的時候,只有一個js文件,index.android.js,我們將其簡化一下,代碼如下: import React, { AppRegistry, Component, Text} from 'react-native'; class Note extends Component



# 代碼
項目剛創建的時候,只有一個js文件,index.android.js,我們將其簡化一下,代碼如下:

import React, {
AppRegistry,
Component,
Text} from 'react-native';

class Note extends Component{
render(){
return (
<Text>
寫筆記
</Text>
);
};
};
AppRegistry.registerComponent('note', () => Note);

# React Native程式執行過程
1. index.android.js是入口文件,從這裡開始執行。
2. 由於React是組件化的,我們首先要創建一個根組件,這裡是Note
3. 我們需要註冊根組件
4. 程式啟動後,首先顯示根組件,這裡簡單的在屏幕左上方顯示"寫筆記"

# Es2015的模塊系統
import React, {
AppRegistry,
Component,
Text} from 'react-native';
這部分的作用,是導入react-native包的一些功能,這裡React是預設導入,只能有一個,其它大括弧里的,可能是
類、函數和變數,只要我們用到了,這裡就要預先導入。
我們要在js文件里調用其它模塊提供的功能,就必須先import它們。

# React的組件概念
class Note extends Component{

這是創建一個組件,繼承自Component,實現render函數。
我們創建了這個組件,今後在jsx中就可以用<Note> </Note>這類方式使用該組件,和使用react native封裝的
<Text>組件沒什麼不同,這就是為何說React是組件化的原因。
簡單的描述下React概念:React的第一個核心概念是虛擬Dom,無論何種平臺該虛擬Dom都抽象了界面的層次結構、
每個組件的屬性和狀態。狀態發生變化時,React比較與前面狀態的差異,然後僅僅Render需要修改的部分,不需全部重
繪。React是Web技術,已經將React-Dom分離出來,後者是將html的標簽組件化、Render,而反過來,React Native
則僅封裝android和ios相關的組件,因此React的核心架構,再實現了一套組件的Render後,就能工作在移動平臺。
同樣的道理,若我們在win32平臺,使用window api實現組件的render,這種技術同樣可以用於桌面開發,且是原生的、使用
js的windows應用。目前已經有第三方實現了mac上的Render.


# JSX
這個組件只實現了Render函數,就能夠正常工作,該函數的作用是,將自己呈現出來
函數體返回的內容,是jsx語法,這種語法最簡單的形式:
<Text>
寫筆記
</Text>

為什麼是簡化的寫法呢?因為React原始的寫法是這樣的
render(){
return (
React.createElement('Text', null,'寫筆記')
)}
createElement最後一個參數,還可能就緒嵌套調用createElement,這樣代碼十分紊亂。
因此facebook提供了jsx語

法,在運行前,將其轉換成createElement這樣的形式。

# 註冊根組件:
AppRegistry.registerComponent('note', () => Note);
React Native提供AppRegistry,用於註冊第一個呈現的組件,稱為根組件。
其參數中,第一個是名字,第二個()=>Note是Es2015的雙箭頭函數,類似其它語言中的lambda函數,
等同於func(return Note);如果有一個或多個參數,在括弧中處理.
Note,是一個類,這裡的寫法實際上創建了Note類的一個實例,調用了Note類的構造方法

# 分離出單獨的Note組件:
一般項目,不會只有一個源文件。
我們創建src目錄,在其中創建一個note.js的文件,然後將這裡的組件移植過去。加上必要的引用,為組件類
加上預設導出:export default.
在index.android.js里刪掉該組件相關的代碼和導入,增加對'.\src\note'的導入。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • /* 01 HTTP請求 */ 重點:1.超文本傳輸協議. 2.http請求過程. {     1> http協議: 超文本傳輸協議(Hypertext Transfer Protocol)     {         http協議規定了客戶端和伺服器之間的數據傳輸格式.           
  • HTML元素的ID和Name屬性的區別今天突然興緻來了,想深究下這兩屬性的具體區別最classical的答案:ID就像是一個人的身份證號碼,而Name就像是他的名字,ID顯然是唯一的,而Name是可以重覆的。      顯然這個ID和Name的解答說的太籠統了,當然那個解釋對於ID來說是完全對的,它
  • Some Structure About CSS Layout Position,Layer[層次] Box Model Visual Formatting Model BFC[block formatting content],IFC[inline formatting content] Styl...
  • 仍記得剛來到公司的時候,老大跟我們說起原型鏈、閉包、MV*之類的東西,當時真的是一臉懵逼的樣子啊哈哈 在公司做前端開發也差不多四個月了,每一天感覺都是很忙碌,都是忙著寫業務代碼或者自己在學習新東西,總感覺很多知識點在這樣的狀態下,匆匆忙忙就略過了,自己並沒有真正理解掌握下來,還是要趁有時間還是把那些
  • jquery通過ajax方法獲取json數據不執行success回調方法
  • 原文地址:http://onevcat.com/2013/05/talk-about-warning/   一個有節操的程式員會在乎自己的代碼的警告,就像在乎飯碗邊上有隻死蟑螂那樣。 ——@onevcat 現在編譯器有時候會很吵,而編譯器給出的警告對開發者來說是很有用的信息。警告不會阻止繼續編譯和鏈
  • 先看效果: 京東商城底部菜單欄      新浪微博底部菜單欄   本次學習效果圖: 第一,主佈局文件(啟動頁main.xml,位於res/layout目錄下)代碼 第二,創建顯示此TabWidget的佈局tabmini.xml(位於res/layout目錄下) 第三,在drawable裡面創建一個s
  • 要實現分組列表這樣的效果:點擊ListView中的分組名稱,即展開此分組顯示其包含的項目。使用ExpandableList可以實現展開這樣的效果,如果對於列表中的每個可點擊的標題View需要更多的定製,而不是簡單的展開——例如點擊全選等,那麼可使用ListView嵌套GridView組合實現,Lis
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...