Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
React Native For Android³õ̽
 
×÷Õߣºlastwarmth À´Ô´£ºCSDN²©¿Í ·¢²¼ÓÚ£º 2016-1-20
  2234  次浏览      27
 

Facebook ÔÚReact.js Conf 2015´ó»áÉÏÍÆ³öÁË»ùÓÚ JavaScript µÄ¿ªÔ´¿ò¼ÜReact Native¡£React Native ½áºÏÁË Web Ó¦ÓÃºÍ Native Ó¦ÓõÄÓÅÊÆ£¬¿ÉÒÔʹÓà JavaScript À´¿ª·¢ iOS ºÍ Android Ô­ÉúÓ¦Óá£ÔÚ JavaScript ÖÐÓà React ³éÏó²Ù×÷ϵͳԭÉúµÄ UI ×é¼þ£¬´úÌæ DOM ÔªËØÀ´äÖȾµÈ¡£

React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. The focus of React Native is on developer efficiency across all the platforms you care about ¡ª learn once, write anywhere. Facebook uses React Native in multiple production apps and will continue investing in React Native.

React Native ʹÄãÄܹ»Ê¹ÓûùÓÚ JavaScript ºÍ React Ò»ÖµĿª·¢ÌåÑéÔÚ±¾µØÆ½Ì¨ÉϹ¹½¨ÊÀ½çÒ»Á÷µÄÓ¦ÓóÌÐòÌåÑé¡£React Native °ÑÖØµã·ÅÔÚËùÓпª·¢ÈËÔ±¹ØÐĵį½Ì¨µÄ¿ª·¢Ð§ÂÊÉÏ¡ª¡ª¿ª·¢ÕßÖ»ÐèѧϰһÖÖÓïÑÔ¾ÍÄÜÇáÒ×ΪÈÎºÎÆ½Ì¨¸ßЧµØ±àд´úÂë¡£Facebook ÔÚ¶à¸öÓ¦ÓóÌÐò²úÆ·ÖÐʹÓÃÁË React Native£¬²¢½«¼ÌÐøÎª React Native Ͷ×Ê¡£

¶ÔÓÚ²»Ì«Á˽âReact NativeÊÇʲôÒÔ¼°FacebookΪʲôҪ´´½¨React Native£¬¿ÉÒÔÏÈ¿´¿´ÕâÆª²©¿Í¡£

Facebook ÓÚ 2015 Äê 9 Ô 15 ÈÕ·¢²¼ÁË React Native for Android£¬ °Ñ Web ºÍÔ­Éúƽ̨µÄ JavaScript ¿ª·¢¼¼ÊõÀ©Õ¹µ½ÁË Google µÄÁ÷ÐÐÒÆ¶¯Æ½Ì¨¨CAndroid¡£

×î½üÏîÄ¿¼¼Êõ¸ºÔðÈË˵¿ÉÄÜÒÔºóÎÒÃÇÒ²»áʹÓÃÕâÌ׿ò¼Ü½øÐÐApp¿ª·¢£¬ËùÒÔ±ãÔ¤ÏÈѧϰһÏ£¬Ë³±ã×öϱʼǣ¬·ÖÏí¸ø´ó¼Ò¡£

Ê×Ïȴ»·¾³£¬µÚÒ»²½±ãÊÇÏÂÔØNode.js¡£È¥¹ÙÍøÏÂÔØ£¬¶ÔÓ¦µçÄÔϵͳ°æ±¾¡£

ÎÒÊÇWin 10£¬ÏÂÔØµÄ64λ¡£ÏÂÔØÍê³Éºó£¬Ö±½Ó°²×°¡£

¿ÉÒÔËæÒâ´´½¨Ò»¸öÒ»¸ötest.js£¬À´²âÊÔNode.jsÊÇ·ñ°²×°³É¹¦¡£

var http = require("http");

http.createServer(function(req, res) {
res.writeHead( 200 , {"Content-Type":"text/html"});
res.write("<h1>Node.js</h1>");
res.write("<p>Hello World</p>");
res.end("");
}).listen(8080);
console.log("HTTP server is listening at port 8080.");

È»ºó½øÈëµ½ÏìÓ¦µÄĿ¼£¬Ö´ÐÐcmd£¬¼üÈëÃüÁnode test.js£¬È»ºóä¯ÀÀÆ÷´ò¿ª¡±localhost:8080¡±£¬ÏÔʾÈçÏÂÔòÊǰ²×°³É¹¦¡£

OK£¬ÏÂÃæ½øÐеڶþ²½£¬Ê¹ÓÃnpmÖ¸Áî°²×°react-native-cli¡£´ò¿ªÃüÁîÐУ¬Ö´ÐÐÖ¸Á

npm install -g react-native-cli

react-native-cliÊÇÓÃÀ´¿ª·¢React NativeµÄÃüÁîÐй¤¾ß¡£ÄãÐèҪʹÓÃnpmÀ´°²×°Ëü¡£ÉÏÃæÕâÐдúÂ뽫»á°ïÖúÄãÔÚterminalÖа²×°react-nativeÃüÁî¡£ÕâÐÐcmdÃüÁîÖ»ÐèÒªÖ´ÐÐÒ»´Î£¬ºóÃæ±ã¿É³ÖÐøÊ¹Óá£

ÏÂÃæ±ã¿ÉÒÔ¿ªÊ¼´´½¨ÎÒÃǵÄReact NativeÏîÄ¿ÁË¡£

´´½¨ºÃ×Ô¼ºµÄÎļþ¼ÐÖ®ºó£¬cmdÃüÁî½øÈëÎļþ¼Ð£¬Ö´ÐÐÃüÁ

react-native init HelloWorld

HelloWorld±ãÊÇÏîÄ¿Ãû£¬¿É×Ô¼ºËæÒâÈ¡¡£

Ö´ÐÐÍê±ÏÖ®ºó±ã»áÉú³ÉHelloWorldÎļþ¼Ð¡£Ä¿Â¼½á¹¹ÊÇÕâÑùµÄ£º

¿ÉÒÔ¿´µ½Éú³ÉµÄÏîÄ¿¼È°üº¬IOS£¬Ò²°üº¬Android¡£ÒòΪÎÒÊÇAndroid¿ª·¢£¬ËùÒÔ¾ÍÔÝʱ²»¹ÜIOSÁË¡£

ÔÚÃüÁîÐÐÖ´ÐÐÍê±ÏÖ®ºó£¬ÎÒÃǻῴµ½To run your app on AndroidµÄÌáʾ¡£½øÈëµ½HelloWorldÎļþ¼Ð£¬Ö´ÐÐÃüÁ

react-native run-android

ͼÉÏËùʾ±ãÊÇÔÚ½øÐбàÒ룬׼±¸°²×°ÁË¡£ ±àÒë³É¹¦ºó£¬°²×°ÔËÐУ¬½çÃæÈçÏ£º

Ìáʾ²»ÄÜÏÂÔØJS bundle¡£ÕâÀïÎÒÃÇ×¢ÒâһϱàÒëʱµÄ»ÆÉ«Ìáʾ£ºStarting the packager in a new window is not supported on Windows yet.Please start it manually using 'react-native start'.¾ÍÊÇ˵²»Ö§³ÖÔÚWindowsÉÏ×Ô¶¯¿ªÆôpackager£¬ÐèÒªÎÒÃÇ×Ô¼ºÏÈÆô¶¯¡£

ÕÕ×ÅÌáʾÀ´£¬Ö´ÐÐÃüÁ

react-native start

¿ÉÒÔ¿´µ½React packager ready.

OK£¬ÔÙÀ´ÔËÐÐÎÒÃǵijÌÐò¡£ ´Ëʱ½çÃæ±äÏÔʾÕý³£ÁË£º

ͬʱReact packager»á´òӡһЩÐÅÏ¢£º

ºÜ¶à¶«Î÷¶¼»¹²»¶®£¬ÔÝʱ¾ÍÏȲ»¹ÜÁË£¬ºóÃæÔÙÂýÂýÁ˽⣬ÖÁÉÙÏÖÔÚ¿´ÆðÀ´Ã»³öʲô´í¡£

ÏÂÃæ±ãÀ´Ñо¿Ò»ÏÂÏÔʾµ½½çÃæÉϵÄÄÚÈݵ½µ×ÊÇÔõôÀ´µÄ¡£

¿´µ½HelloWolrdÎļþ¼ÐÏÂÓÐindex.android.jsÎļþ£¬±à¼­Æ÷´ò¿ª£¬¿´µ½µÄ´úÂëÊÇÕâÑùµÄ£º

/**
* Sample React Native App
* https://github.com/facebook/react-native
*/
'use strict';
import React, {
AppRegistry,
Component,
StyleSheet,
Text,
View
} from 'react-native';

class HelloWorld extends Component {
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Welcome to React Native!
</Text>
<Text style={styles.instructions}>
To get started, edit index.android.js
</Text>
<Text style={styles.instructions}>
Shake or press menu button for dev menu
</Text>
</View>
);
}
}

const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},
});

AppRegistry.registerComponent('HelloWorld', () => HelloWorld);

´Ëʱ£¬¶Ô×Å´úÂëÓë½çÃæ£¬ÎÒÃDZã¿ÉÒԴ󵨵IJ²â½çÃæÉÏÏÔʾµÄÎÄ×Ö¾ÍÊÇHelloWorld classÖжÔÓ¦µÄ3¸öText±êÇ©ÁË¡£ÏÂÃæ³¢ÊÔһϣº

HelloWorld class´úÂë¸Ä³ÉÈçÏ£º

class HelloWorld extends Component {
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Hello World!
</Text>
</View>
);
}
}

ÎÒÃǰÑ֮ǰ3¸öText±êǩȥµô£¬Ð´Ò»¸öÏÔʾHello WorldµÄText±êÇ©¡£ÄÇô¸ÄºÃÖ®ºóÈçºÎ¿´µ½Ð§¹ûÄØ£¿£¿£¿Çë×¢Ò⣬Õâ±ãÊÇReact Native¿ò¼Ü·Ç³£À÷º¦µÄµØ·½£¬Äã²»ÐèÒªÖØÐ±àÒë°²×°apk£¬¸üаüµÈ²Ù×÷£¬Ö±½ÓÐéÄâ»úµã³öMenu£¬µã»÷Roload JS¼´¿ÉʵÏÖ¸üУº

¿ÉÒÔ¿´µ½£¬½çÃæÈ·ÊµÊDZä³ÉÁËÎÒÃÇÔ¤ÏëµÄÑù×Ó¡£

ÏÂÃæÎÒ´Ó¹ÙÍø¸´ÖÆÁËÒ»·Ýindex.android.js´úÂ룺

/**
* Sample React Native App
* https://github.com/facebook/react-native
*/
'use strict';

var React = require('react-native');
var {
AppRegistry,
Image,
ListView,
StyleSheet,
Text,
View,
} = React;

var API_KEY = '7waqfqbprs7pajbz28mqf6vz';
var API_URL = 'http://api.rottentomatoes.com/api/public/v1.0/lists/movies/in_theaters.json';
var PAGE_SIZE = 25;
var PARAMS = '?apikey=' + API_KEY + '&page_limit=' + PAGE_SIZE;
var REQUEST_URL = API_URL + PARAMS;

var AwesomeProject = React.createClass({
getInitialState: function() {
return {
dataSource: new ListView.DataSource({
rowHasChanged: (row1, row2) => row1 !== row2,
}),
loaded: false,
};
},

componentDidMount: function() {
this.fetchData();
},

fetchData: function() {
fetch(REQUEST_URL)
.then((response) => response.json())
.then((responseData) => {
this.setState({
dataSource: this.state.dataSource.cloneWithRows(responseData.movies),
loaded: true,
});
})
.done();
},

render: function() {
if (!this.state.loaded) {
return this.renderLoadingView();
}

return (
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderMovie}
style={styles.listView}
/>
);
},

renderLoadingView: function() {
return (
<View style={styles.container}>
<Text>
Loading movies...
</Text>
</View>
);
},

renderMovie: function(movie) {
return (
<View style={styles.container}>
<Image
source={{uri: movie.posters.thumbnail}}
style={styles.thumbnail}
/>
<View style={styles.rightContainer}>
<Text style={styles.title}>{movie.title}</Text>
<Text style={styles.year}>{movie.year}</Text>
</View>
</View>
);
},
});

var styles = StyleSheet.create({
container: {
flex: 1,
flexDirection: 'row',
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
rightContainer: {
flex: 1,
},
title: {
fontSize: 20,
marginBottom: 8,
textAlign: 'center',
},
year: {
textAlign: 'center',
},
thumbnail: {
width: 53,
height: 81,
},
listView: {
paddingTop: 20,
backgroundColor: '#F5FCFF',
},
});

AppRegistry.registerComponent('AwesomeProject', () => AwesomeProject);

È»ºóReload JS£¬½çÃæÈçÏ£º

ѽ£¬³ö´íÁË¡£ÎÒÃÇ¿´µ½ÊÇÔÚregisterComponentµÄʱºò³ö´íÁË¡£ÏëÆðÀ´ÎÒÃǵÄÏîÄ¿Ãû³ÆÊÇHelloWorld£¬½«×îºóÒ»¾ä´úÂë¸Äµô¡£

AppRegistry.registerComponent('HelloWorld', () => AwesomeProject);

Reload JS¡£

¼ÓÔØÍê±ÏºóµÄÏÔʾ½çÃæ£º

µ«Êǽ«´úÂë¸Ä³É£º

AppRegistry.registerComponent('HelloWorld', () => HelloWorld);

Ö´ÐÐÓÖ³ö´íÁË£º

¿´À´¶«Î÷²»ÄÜÂÒ¸Äѽ£¬ÖÁÓÚÊÇʲôԭÒò£¬¾Í·ÅÔÚÒÔºóÂýÂýÈ¥·¢ÏÖÈ¥½â¾öÁË¡£ÁíÍâÕâÖÖJS´úÂëµÄд·¨Ò²ÊÇÐèÒªÔÚʵ¼ùÖÐÂýÂý»ýÀÛ£¬Ñ§Ï°£¬²ÅÄÜÖð²½ÕÆÎÕ¡£

½ñÌì¾Íµ½ÕâÀïÁË£¬´úÂë¶¼ÊÇ×Ô¶¯Éú³ÉµÄ£¬±ã²»ÉÏ´«ÁË¡£Have a nice weekend~

 

 

   
2234 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
 
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

androidÈË»ú½çÃæÖ¸ÄÏ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
AndroidÊÖ»ú¿ª·¢£¨¶þ£©
AndroidÊÖ»ú¿ª·¢£¨Èý£©
AndroidÊÖ»ú¿ª·¢£¨ËÄ£©
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖ̽ÌÖ
ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
ÊÖ»úÈí¼þ×Ô¶¯»¯²âÊÔÑо¿±¨¸æ


Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
AndroidÓ¦Óÿª·¢
Androidϵͳ¿ª·¢
ÊÖ»úÈí¼þ²âÊÔ
ǶÈëʽÈí¼þ²âÊÔ
AndroidÈí¡¢Ó²¡¢ÔÆÕûºÏ


ÁìÏÈIT¹«Ë¾ android¿ª·¢Æ½Ì¨×î¼Ñʵ¼ù
±±¾© Android¿ª·¢¼¼Êõ½ø½×
ijÐÂÄÜÔ´ÁìÓòÆóÒµ Android¿ª·¢¼¼Êõ
ijº½Ì칫˾ Android¡¢IOSÓ¦ÓÃÈí¼þ¿ª·¢
°¢¶û¿¨ÌØ LinuxÄÚºËÇý¶¯
°¬Ä¬Éú ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
Î÷ÃÅ×Ó Ç¶Èëʽ¼Ü¹¹Éè¼Æ