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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
React Native³õ̽
 
  1955  次浏览      27
2019-5-5
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcnblogs£¬ÎÄÕÂÖ÷ÒªÒÔÒ»¸öʵÀýΪÈë¿Ú½éÉÜÁË´Ó»·¾³´î½¨µ½ÏîÄ¿ÔËÐеÄÍêÕû¹ý³Ì¡£

ǰÑÔ

ºÜ¾Ã֮ǰ¾ÍÏëÑо¿React NativeÁË£¬µ«ÊÇһֱûÓÐÂ䵨µÄ»ú»á£¬ÎÒÒ»Ö±ÈÏΪһ¸ö¼¼ÊõÒªÓÐÂ䵨µÄ³¡¾°²ÅÓÐÑо¿µÄÒâÒ壬¸ÕºÃ×î½üÓ­À´ÁËеÄAPP£¬Ôڿɿصķ¶Î§ÄÚ£¬ÎÒÃÇ¿ÉÒÔÔÚÉÏÃæ×öÈκÎÏë×öµÄÊÂÇé¡£

PS£ºÈκÎм¼ÊõµÄ³¢Ïʶ¼Ò»¶¨Òª¿ØÖÆÔÚ×Ô¼ºÄÜ¿ØÖƵķ¶Î§ÄÚ£¬Ê§°ÜÁË»áÓпÉÌæ»»·½°¸£¬²»ÒªÒýÆð²»¿ÉÄæµÄÎÊÌ⣬ÕâÑù»á¸øÍŶÓÔì³ÉÔÖÄÑÐԵĺó¹û¡£

ÊÂʵÉÏ£¬RN¾­¹ýÒ»¶Îʱ¼ä·¢Õ¹£¬ÒѾ­Óгä·ÖÊýÁ¿µÄÈ˳¢ÊÔ¹ýÁË£¬¾ÍÎÒÉí±ß¾ÍÓм¸Åú£¬°ý±áÒ²²»Ò»£º

¢Ù ×öUI¿ì

¢Ú »¹ÊÇÓкܶàÏÞÖÆ£¬²»ÈçÔ­ÉúNative

¢Û ÈëÃżòµ¥£¬ÄÜÈÃǰ¶Ë¿ìËÙ¿ª·¢App

¢Ü iOS&Android´ó²¿·Ö´úÂëͨÓÃ

¢Ý code-pushÄÜ×öÈȸüУ¬µ«ÊÇÓò»ºÃÒÀ¾É¿Ó

......

Ôڵõ½Ò»Ð©ÐÅÏ¢ºó£¬¿ÉÒÔ¿´³ö£¬ÒªÓÃRN¸ßЧÂʵÄ×ö³ö±È½Ï²»´íµÄAppÊÇÓпÉÄܵ쬵¥¿´Í¶Èë¶ÈÓë×î³õÉè¼ÆÊÇ·ñºÏÀí£¬¶øÇÒÏÖÔÚ¹ØÓÚReact NativeµÄ¸÷ÖÖÎĵµÊÇÏ൱·á¸»µÄ£¬ËùÒÔÕâ¸ö½×¶ÎÏëÇÐÈëRN¿ÉÄÜÊÇÒ»¸ö²»´íµÄÑ¡Ôñ¡£

´ø×ÅÊÔÊÔ²»³Ô¿÷µÄÏë·¨£¬ÎÒÃÇ¿ªÊ¼½ñÌìµÄѧϰ£¬ÕâÀïÊÇһЩ±È½ÏÓÅÖʵÄѧϰ×ÊÁÏ£º

https://github.com/reactnativecn/react-native-guide

×¼±¸½×¶Î

´î½¨¿ª·¢»·¾³

http://reactnative.cn/docs/0.36/getting-started.html

¹Ù·½µÄÀý×ÓÆäʵдµÄºÜºÃÁË£¬ÎÒÕÕ׏ٷ½µÄÀý×ÓÄܺܺõÄÅÜÆðÀ´£¬´ó¼Ò×Ô¼ºÈ¥¿´¿´°É

ÕâÀïÔÚÔËÐÐʱºòҪעÒâһϣ¬ÎÒÒòΪ¿ªÆôÁËFQ¹¤¾ß£¬Ò»ÔËÐоÍcrash£¬ÕâÀï²Â²âÊÇ·­£¨***·¨£©Ç½¹¤¾ß¶ÔlocalhostÔì³ÉÁËÓ°Ï죬µ¼Ö²»ÄܶÁÈ¡Îļþ£¬Õâ¸ö¿ÉÄÜÉæ¼°µ½RNµ×²ãʵÏÖ£¬ÎÒÃǺóÃæÉîÈëÁËÔÙÈ¥×öÑо¿£¬ÕâÀï¹Ø±ÕFQ¹¤¾ß¼´¿É¡£

È»ºóµÚ¶þ¸öÎÊÌ⣬ÊÇhttpµÄͼƬչʾ²»³öÀ´£¬ÕâÀïÕÛÌÚÁ˺ܾã¬È´·¢ÏÖºóÃæµÄÕ½ÚÓÐÁË˵Ã÷£¬appĬÈÏÖ»Ö§³ÖhttpsµÄÁ´½Ó£¬ÕâÀï´ó¼Ò¸ÄÏÂÅäÖü´¿É

RNÖеÄjsʹÓõÄÊDZȽÏеÄÓï·¨£¬ÕâÀïÒ²ÐèÒª´ó¼Ò½øÐÐѧϰ£¬ÎÒѧϰµÄ¸ÐÊÜÊÇES6ÌṩÁ˺ܶàÓï·¨ÌÇ£¬µ«ÊÇÓм¸¸ö¶«Î÷ҲҪעÒâ¡£

Class

JavaScript֮ǰµÄ¼Ì³ÐÈ«²¿ÊǸ´Ð´Ô­ÐÍÁ´Ä£ÄâʵÏֵģ¬×÷Ϊ´óÐÍÓ¦Óÿò¼Ü£¬¼Ì³ÐÊDZز»¿ÉÉٵģ¬ËùÒÔES6Ö±½Ó½«Õâ¿éAPI»¯ÁË£¬ÎÒÕâÀïдһ¸ö¼òµ¥µÄdemo£º

class Animal {
constructor(name) {
this.name = name;
}
say() {
console.log('ÎÒÊÇ' + this.name);
}
}
class Person extends Animal {
say() {
console.log('ÎÒÊÇÈËÀà');
super.say();
}
}
var p = new Person('ҶСîÎ')
p.say();

/*
ÎÒÊÇÈËÀà
ÎÒÊÇҶСîÎ
*/

Module

ÎÒÃÇÒ»°ãʹÓÃrequireJS½â¾öÄ£¿é»¯µÄÎÊÌ⣬ÔÚES6ÀïÃæÌá³öÁËModule¹¦ÄÜÔÚ¹Ù·½½â¾öÁËÄ£¿é»¯µÄÎÊÌ⣬ÕâÀïÓÅȱµã²»ÊÇÎÒÃÇ¿¼ÂǵÄÖØµã£¬¼òµ¥Á˽âÏÂÓï·¨£¬Á½¸öºËÐÄΪ£º

¢Ù export

¢Ú import

ES6ÒÔÒ»¸öÎļþΪµ¥Î»£¬Ò»¸öÎļþ¿ÉÒÔ¶à¸öÊä³ö£¬ÕâÀïÒÔRNµÄÒ»¸öÒýÓÃΪÀý£º

import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
import styles from './static/style/styles.js';

¿ÉÒÔ¼ÙÏ룬ÕâÀïÒ»¶¨»áÓÐÒ»¸öreactÎļþ£¬²¢ÇÒÀïÃæ¿ÉÄÜÊÇÕâ¸öÑùʽµÄ£º

export default class React......

expoet class Component ......

PS£ºÒ»¸öÎļþÖ»ÄÜÓÐÒ»¸ödefault

Êä³öµÄdefaultÒ»¶¨»á³öÏÖ£¬²»Ê¹ÓôóÀ¨ºÅ°ü¹ü£¬ÆäÓಿ·ÖËæÒâÊä³ö£¬ÕâÀïÓëÎÒÃÇʹÓÃrequire»òÓв»Í¬£¬ÐèҪעÒâ¡£

Ó¦¸Ã˵ES6ÌṩÁ˺ܶàÓï·¨ÌÇ£¬ÓÐÈËϲ»¶£¬ÓÐÈ˲»Ï²»¶£¬Õâ¸ö¿´°®ºÃʹÓðɣ¬±ÈÈç=>¼ýÍ·º¯Êý¡£Á˽âÁËÒÔÉϹØÏµ£¬ÔÙÅäºÏES6µÄһЩÎĵµ£¬»ù±¾¿ÉÒÔдRNµÄ´úÂëÁË¡£

³ÇÊÐÁбí

²ð·ÖĿ¼

ÕâÀÎÒÃÇ×öÒ»¸ö³ÇÊÐÁÐ±í£¬ÕæÊµµÄ·ÃÎʽӿڻñÈ¡Êý¾Ý£¬È»ºóäÖÈ¾Ò³Ãæ£¬¿´¿´×ö³öÀ´Ð§¹ûÈçºÎ¡£

Ê×ÏÈ£¬ÎÒÃdzõʼ»¯Ò»¸öRNÏîÄ¿£º

react-native init Citylist

È»ºóʹÓÃXcode´ò¿ªiOSÖеÄÏîÄ¿£¬±àÒëÔËÐУº

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

export default class Citylist 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.ios.js
</Text>
<Text style={styles.instructions}>
Press Cmd+R to reload,{'\n'}
Cmd+D or shake 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('Citylist', () => Citylist);

ÕâÀï³ýÁËindex.io.js£¬ÆäËûÎļþÎÒÃDz»±ØÀí²Ç£¬ÎÒÃÇ×öµÄµÚÒ»¼þÊÂÇéÊÇ£¬½«ÑùʽÎļþ°þÀë³öÈ¥£¬Ð½¨staticÎļþ¼Ð£¬¼ÓÈëimagesºÍstyle£¬½«ÑùʽÎļþÒÆÈëstyleÎļþ£¬Ð½¨style.js£º

import {
StyleSheet
} from 'react-native';

export let 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,
},
});

È»ºóÊ×Ò³´úÂëÔÙ×öһЩ¸Ä¶¯£º

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

import {styles} from './static/style/style';


export default class Citylist 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.ios.js
</Text>
<Text style={styles.instructions}>
Press Cmd+R to reload,{'\n'}
Cmd+D or shake for dev menu
</Text>
</View>
);
}
}

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

PS£ºÕâÀïÓÐÒ»¸ö¼ýÍ·º¯Êý

() => Citylist
//===>
function () {
return Citylist;
}

¾²Ì¬×ÊÔ´°þÀëºó£¬ÎÒÃÇÏȲ»´¦ÀíÆäËüµÄ£¬ÎÒÃÇÀ´×öÊý¾ÝÇëÇó¡£

Êý¾ÝÇëÇó

RNËäÈ»ÄÚÖÃÁËajax¿â£¬µ«ÊÇÒ»°ãÍÆ¼öʹÓÃRN×Ô´øµÄFetch£¬×î¼òµ¥µÄʹÓÃÊÇ£º

fetch('https://mywebsite.com/mydata.json')

PS£ºÎÒÃÇÔÚѧϰRNµÄʱºò£¬Ò²ÊÇÔÚѧϰÉñÂí·½Ê½ÊÇÊʺϵ쬻òÕß˵ÊìϤʹÓúÏÊʵÄ×é¼þ

ÇëÇóÒ»¸ö½Ó¿ÚÊÇÕâÑùдµÄ£¨Ê¹ÓÃpromise£©£º

fetch('https://apikuai.baidu.com/city/getstartcitys')
.then((response) => response.json())
.then((jsonData) => {
console.log(jsonData);
})
.catch((e) => {
console.log(e)
})

ÕâÀï´ò¿ªµ÷ÊÔ»·¾³Ò»¿´£¬Êä³öÁËÎÒÃÇÒªµÄÊý¾Ý£º

Ò»°ãÀ´Ëµ£¬ÎÒÃÇÐèÒª¶ÔÊý¾ÝÇëÇóÓ¦¸Ã·âװΪһ¸öµ×²ã¿â£¬ÕâÀïÖ»×öһЩ¼òµ¥¸ÄÔì£¬ÕæÊµÏîÄ¿²»»áÕâÑù×ö£º

export default class Citylist extends Component {
getdata(url, suc, err) {
return fetch(url)
.then((response) => response.json())
.then((data) => {
if(data.errno == 0) {
suc && suc(data.data)
}
})
.catch((e) => {
console.log(e)
});
}
render() {

this.getdata('https://apikuai.baidu.com
/city/getstartcitys', function(data) {
s = ''
});

return (
<View style={styles.container}>
<Text style={styles.welcome}>
Welcome to React Native!
</Text>
<Text style={styles.instructions}>
To get started, edit index.ios.js
</Text>
<Text style={styles.instructions}>
Press Cmd+R to reload,{'\n'}
Cmd+D or shake for dev menu
</Text>
</View>
);
}
}

PS£ºÕâÀïµÄʹÓò»Ò»¶¨ÕýÈ·£¬ÏÈÍê³É¹¦ÄÜÔٸĽø°É

ÎÒÃÇÈ¡ËùÓеijÇÊÐcities£¬Õâ¸öÊý¾ÝÁ¿ºÜ´ó£¬ÓÐ1000¶àÌõ¼Ç¼£¬Ò²¿ÉÒÔ²âÊÔÏÂÍ϶¯Ð§ÂÊÁË£¬ÕâÀïΪÀà¼ÓÈë¹¹Ô캯Êý£¬ÒòΪÁбíÊǿɱäµÄ£¬ÔÝʱ°ÑÁбíÊý¾Ý¹éΪstate£¨reactÒ²²»ÊÇÌ«Ê죬Èç¹ûÓÐÎÊÌâºóÐøÓÅ»¯£¬ÏÈÍê³É¹¦ÄÜ£©£º

constructor(props) {
super(props);
this.state = {
cities: []
};
}

var scope = this;
//±¾À´ÏëʹÓüýÍ·º¯ÊýµÄ£¬µ«ÊÇÁ˽ⲻ̫Çå³þ£¬
demoʱºòÔÝʱÕâÑù°É
this.getdata('https://apikuai.baidu.com
/city/getstartcitys', function(data) {
scope.state.citys = data.cities;
});

ÁбíäÖȾ

´¦ÀíÁËÊý¾ÝÎÊÌâºó£¬ÎÒÃÇ¿ªÊ¼×öÁбíäÖȾ£¬ÕâÀïʹÓÃListView×é¼þ£¬Õâ¸ö×é¼þÓÃÒÔÏÔʾһ¸ö´¹Ö±¹ö¶¯ÁÐ±í£¬Êʺϳ¤ÁÐ±í£¬Á½¸ö±ØÐëµÄÊôÐÔÊÇdatasourceºÍrenderRow£º

dataSource£ºÁбíÊý¾ÝÔ´

renderRow£ºÖð¸ö½âÎöÊý¾ÝÔ´ÖеÄÊý¾Ý£¬È»ºó·µ»ØÒ»¸öÉ趨ºÃµÄ¸ñʽÀ´äÖȾ

¼òµ¥Êéд´úÂ룺

export default class Citylist extends Component {
constructor(props) {
super(props);

this.ds = new ListView.DataSource
({rowHasChanged: (r1, r2) => r1 !== r2});
this.state = {
cities: this.ds.cloneWithRows([
{cnname
:
"ÎÄɽ׳×åÃç×å×ÔÖÎÖÝ",
enname
:
"wszzmzzzz",
extflag
:
"1",
flag
:
"0",
name
:
"wenshanzhuangzumiaozuzizhizhou",
parentid
:
"28",
regionid
:
"177",
shortname
:
"ÎÄɽ",
shownname
:
"ÎÄɽ",
type
:
"2"},{cnname
:
"ÎÄɽ׳×åÃç×å×ÔÖÎÖÝ",
enname
:
"wszzmzzzz",
extflag
:
"1",
flag
:
"0",
name
:
"wenshanzhuangzumiaozuzizhizhou",
parentid
:
"28",
regionid
:
"177",
shortname
:
"ÎÄɽ",
shownname
:
"ÎÄɽ",
type
:
"2"},{cnname
:
"ÎÄɽ׳×åÃç×å×ÔÖÎÖÝ",
enname
:
"wszzmzzzz",
extflag
:
"1",
flag
:
"0",
name
:
"wenshanzhuangzumiaozuzizhizhou",
parentid
:
"28",
regionid
:
"177",
shortname
:
"ÎÄɽ",
shownname
:
"ÎÄɽ",
type
:
"2"}
])
};
}
getdata(url, suc, err) {
return fetch(url)
.then((response) => response.json())
.then((data) => {
if(data.errno == 0) {
suc && suc(data.data)
}
})
.catch((e) => {
console.log(e)
});
}
componentDidMount(){
var scope = this;
this.getdata('https://apikuai.baidu.com
/city/getstartcitys', function(data) {
console.log(data)

scope.setState({
cities: scope.ds.cloneWithRows(data.cities)
});
//scope.state.citys = data.cities;
//this.getdata('https://apikuai.baidu.com
/city/getstartcitys', (data) => {
// this.state.citys = data.cities;
//});
});
}
render() {
return (
<View style={styles.container}>
<ListView
dataSource={this.state.cities}
renderRow={(rowData) => <Text>
{rowData.cnname}</Text>}
/>
</View>
);
}
}

È»ºó¾ÍÕâÑùÁË£¬ËäÈ»³óÊdzóµã£¬µ«ÊÇ»¹ÄÜ¿´ÂÕâÀïÎÒÃÇÏȲ»È¥Àí²Ç³ÇÊеÄÅÅÐò£¬Ò²²»×öËÑË÷¹¦ÄÜ£¬ÎÒÃÇÏȰѲ¼¾Ö´¦ÀíÏ£¬ËûµÄ³óªÎÒÒѾ­Êܲ»ÁËÁË

Ñùʽ´¦Àí

ÏÖÔÚÎÒÃÇ¿ªÊ¼´¦ÀíÕâ¶ÎÑùʽ£º

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

import {styles} from './static/style/style';

export default class Citylist extends
Component {
constructor(props) {
super(props);

this.ds = new ListView.DataSource
({rowHasChanged: (r1, r2) => r1 !== r2});
this.state = {
cities: this.ds.cloneWithRows([])
};
}
getdata(url, suc, err) {
return fetch(url)
.then((response) => response.json())
.then((data) => {
if(data.errno == 0) {
suc && suc(data.data)
}
})
.catch((e) => {
console.log(e)
});
}
componentDidMount(){
var scope = this;
this.getdata('https://apikuai.baidu.com
/city/getstartcitys', function(data) {
console.log(data)

scope.setState({
cities: scope.ds.cloneWithRows(data.cities)
});
//scope.state.citys = data.cities;
//this.getdata('https://apikuai.baidu.com
/city/getstartcitys', (data) => {
// this.state.citys = data.cities;
//});
});
}
render() {
return (
<View style={styles.container}>
<ListView style={styles.listView}
enableEmptySections={true}
dataSource={this.state.cities}
renderRow={(rowData) =>
<View style={styles.listItem} >
<Text>{rowData.cnname}</Text>
</View>
}
/>
</View>
);
}
}

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

import {
StyleSheet
} from 'react-native';

export let styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#F5FCFF',
},
listView: {
marginTop: 30,
flex: 1,
borderBottomColor:'#CCCCCC',//cellµÄ·Ö¸îÏß
borderBottomWidth:1
},
listItem: {
paddingTop: 15,
paddingBottom: 15,
paddingLeft: 10,
flexDirection:'row',
borderBottomColor:'#CCCCCC',//cellµÄ·Ö¸îÏß
borderBottomWidth:1
}
});

ʼþ°ó¶¨

È»ºó£¬ÎÒÃÇÔÙΪÿÐÐÊý¾Ý¼ÓÉϵã»÷ʼþ£¬ÕâÀïÒ²×ö¼òµ¥Ò»µã£¬´òÓ¡³öµ±Ç°ÐеÄÖµ¼´¿É£º

onPressAction(data){
alert(data.cnname)
}
render() {
return (
<View style={styles.container}>
<ListView style={styles.listView} enableEmptySections={true}
dataSource={this.state.cities}
renderRow={(rowData) =>
<View style={styles.listItem} >
<Text onPress={() =
> this.onPressAction(rowData)}>
{rowData.cnname}</Text>
</View>
}
/>
</View>
);
}

PS£ºÎÒÄáÂ꣬Õâ¸öRNµÄѧϰ£¬ºÜ´ó³Ì¶È¾ÍÊÇÒ»¸ö¸öAPI»òÕß×é¼þµÄÊìϤ£¬Õâ¿é²»ÊìϤµÄ»°£¬×öÆðÀ´ÄÕ»ðµÄºÜ

ÎÒÕâÀ↑ʼÏë¸øTextÉèÖñ߿ò£¬Ôõô¶¼²»Äܳɹ¦£¬ºóÃæ¾Í¼ÓÁËÒ»²ãView¾ÍºÃÁË£¬ÕâÖÖСϸ½ÚÐèÒª¶àÃþË÷£¬Õâ¸öÊÇ×îÖյĽṹ£º

½áÓï

×÷Ϊһ¸ödemoµÄ»°£¬Õâ¸öÀý×Ó»ù±¾¿ÉÒÔ˵Ã÷һЩÎÊÌâµÄ£¬ËäÈ»ÎÒ±¾ÒâÊÇÏë×ö³ÉÕâ¸öÑù×ӵģº£©

ͨ¹ýÕâ¸öÀý×Ó£¬ÎÒÃǼòµ¥µÄѧϰÁËÏÂRNµÄ¿ª·¢Ä£Ê½£¬×ö³öÀ´µÄ¸ÐÊÜÊÇFacebookºÜÇ¿´ó£¬×öÁËÒ»¸öÌåϵÐԵĶ«Î÷£¬¾Ù¸öÀý×ÓÀ´Ëµ£¨¸öÈ˸ÐÊÜ£©

֮ǰÎÒÃÇ×öHybridµÄʱºòHeaderÊÇNativeÌṩµÄ£¬´ó¸Å×ö·¨ÊÇÕâÑùµÄ£º

//NativeÒÔ¼°Ç°¶Ë¿ò¼Ü»á¶ÔÌØÊâtagnameµÄ±êʶ×öĬÈϻص÷£¬Èç¹ûδע²ácallback£¬»òÕßµã»÷»Øµ÷callbackÎÞ·µ»ØÔòÖ´ÐÐĬÈÏ·½·¨
//backǰ¶ËĬÈÏÖ´ÐÐHistory.back£¬Èç¹û²»¿ÉºóÍËÔò»Øµ½Ö¸¶¨URL£¬NativeÈç¹û¼ì²âµ½²»¿ÉºóÍËÔò·µ»ØNaive´óÊ×Ò³
//homeǰ¶ËĬÈÏ·µ»ØÖ¸¶¨URL£¬NativeĬÈÏ·µ»Ø´óÊ×Ò³
this.header.set({
left: [
{
//Èç¹û³öÏÖvalue×ֶΣ¬ÔòĬÈϲ»Ê¹ÓÃicon
tagname: 'back',
value: '»ØÍË',
//Èç¹ûÉèÖÃÁËlefticon»òÕßrighticon£¬ÔòÏÔʾicon
//native»áÌṩ³£ÓÃͼ±êiconÓ³É䣬Èç¹ûÕÒ²»µ½£¬±ã»áÈ¥µ±Ç°ÒµÎñƵµÀרÓÃĿ¼»ñȡͼ±ê
lefticon: 'back',
callback: function () { }
}
],
right: [
{
//ĬÈÏiconΪtagname£¬ÕâÀïΪicon
tagname: 'search',
callback: function () { }
},
//×Ô¶¨Òåͼ±ê
{
tagname: 'me',
//»áÈ¥hotelƵµÀ´æ´¢¾²Ì¬headerͼ±ê×ÊԴĿ¼ËÑѰ¸Ãͼ±ê£¬Ã»ÓбãʹÓÃĬÈÏͼ±ê
icon: 'hotel/me.png',
callback: function () { }
}
],
title: 'title',
//ÏÔʾÖ÷±êÌ⣬×Ó±êÌâµÄ³¡¾°
title: ['title', 'subtitle'],

//¶¨ÖÆ»¯title
title: {
value: 'title',
//±êÌâÓÒ±ßͼ±ê
righticon: 'down', //Ò²¿ÉÒÔÉèÖÃlefticon
//±êÌâÀàÐÍ£¬Ä¬ÈÏΪ¿Õ£¬ÉèÖõϰÐèÒªÌØÊâ´¦Àí
//type: 'tabs',
//µã»÷±êÌâʱµÄ»Øµ÷£¬Ä¬ÈÏΪ¿Õ
callback: function () { }
}
});

ͨ¹ýÕâ¸öÔ¼¶¨£¬ÎÒÃǵÄNative¾Í»áÉú³ÉһϵÁÐheaderUI£º

¶øRN×öÁËÊ²Ã´ÄØ£¬Ëû¿ÉÄÜÊÇʵÏÖÁËÒ»¸öÕâÑùµÄ±êÇ©£¨»òÕß˵ÊÇÓï·¨ÌÇ£©£º

<Header title="" right="[]" ></Header>

È»ºóRN»á×Ô¼ºÈ¥½âÎöÕâ¸ö±êÇ©£¬Éú³ÉÉÏÊöµÄ¶ÔÏó£¬È»ºóÉú³ÉNativeµÄUI£¬Õâ¸öÎÒÃÇÆäʵҲÄÜ×öµ½£¬µ«ÊÇÎÒÃÇÒ»¸öÄÜ×öµ½£¬10¸ö¾Í²»Ò»¶¨×öµÃµ½ÁË£¬RNÅ£µÄµØ·½¾ÍÅ£ÔÚËûÌṩÁËÕâô´óÒ»Ûç¶«Î÷£º

È»ºó»¹ÓÐËûÒ»ÕûÌ×µÄÑùʽÌåϵ£¬·Ç³£Ö®´óÊֱʣ¬¶øÍ¨¹ýRNµÄÍêÉÆÔ¼¶¨£¬Éú³ÉÁËÒ»Ì×NativeUI£¬Ó¦¸Ã˵À´ÌåÑéÊǷdz£¸ßµÄ£¬¿ª·¢Ð§ÂÊÒòΪ¿ÉÒÔ×öµ½´ó²¿·ÖiOS AndroidͨÓã¬ËäÈ»ÕûÌ忪·¢Ð§ÂÊÎÞ·¨ÓëHybrid±È¼ç£¬µ«¾ø¶ÔÓÐÆäÓ¦Óó¡¾°¡£

ÎÒÃÇÒ²ÓÐһЩͬÊÂ˵ÁËһЩRNµÄÎÊÌ⣬µ«ÊÇ¿ò¼ÜÔÚ·¢Õ¹£¬ÈÝÆ÷ÔÚÓÅ»¯£¬ÕâЩÎÊÌâÔÚij¸öʱ¼äµãÓ¦¸ÃÄܽâ¾öµÄ£¬×ܵÄ˵À´£¬RN»¹ÊǺÜÓÐѧϰµÄ¼ÛÖµ£¬ºóÃæÎÒ¿ÉÄܻỨºÜ¶à¹¦·òÈ¥½øÐÐÂ䵨£¡£¡£¡

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

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì