转载请注明出处:王亟亟的大牛之路
还是老规矩,先安利:https://github.com/ddwhan0123/Useful-Open-Source-Android 坚持尽量每天更@H_403_4@
昨天翻了点RN的第三方库,感觉歪果仁的一些项目和“大公湿”都已经 7 8成完全应用到自己的产品,感觉不加快学习进度不行了,这里也会加快更迭和学习进展,当然还是从官方DOC给大家介绍,没有任何JS基础的也可以跟得上@H_403_4@
内容来源于 https://facebook.github.io/react-native/docs/props.html(应该有墙)@H_403_4@
我会以顺序翻译+分析的角度跟大家一起学习@H_403_4@
OK,废话不说 第一个主角 Props@H_403_4@
什么是Props?@H_403_4@
在 Object-oriented programming(面向对象)的概念里
一个对象它可能包含数据、属性、代码与方法
就像 人是一个对象
他有一个属性是 身高
而身高 185CM 其实就是属性的数据@H_403_4@
大多数组件在创建时就可以使用各种参数来进行定制。这些参数就是props(属性)。@H_403_4@
然后举了个Image的例子,我们来看下源码@H_403_4@
- import React,{ Component } from 'react';
- import { AppRegistry,Image } from 'react-native';
-
- class Bananas extends Component {
- render() {
- let pic = {
- uri: 'https://upload.wikimedia.org/wikipedia/commons/d/de/Bananavarieties.jpg'
- };
- return (
- <Image source={pic} style={{width: 193,height: 110}}/>
- );
- }
- }
-
- AppRegistry.registerComponent('Bananas',() => Bananas);
运行如下@H_403_4@
我们有一个对象 叫pic他有个 uri属性是uri 值是一个.jpg的图片地址@H_403_4@
然后他被一个 <Image/>
控件所引用,并设置了宽高,返回给了UI界面去渲染@H_403_4@
对于这个控件来说 source属性 有个值 为 “xxxx.jpg”,而style的属性是宽 高有他自己的值,经过一系列的属性描述构建出我们UI 视图上的图片组件@H_403_4@
这里说一下语法@H_403_4@
{pic}括号把JSX语句中潜入,括号里可能是表达式也可以是js变量,那也就阐明了一个很重要的点,这一切 都可以是 动态的@H_403_4@
然后又举了个“自定义对象”概念的例子,我们来看下@H_403_4@
- import React,Text,View } from 'react-native';
-
- class Greeting extends Component {
- render() {
- return (
- <Text>Hello {this.props.name}!</Text>
- );
- }
- }
-
- class LotsOfGreetings extends Component {
- render() {
- return (
- <View style={{alignItems: 'center'}}>
- <Greeting name='Rexxar' />
- <Greeting name='Jaina' />
- <Greeting name='Valeera' />
- </View>
- );
- }
- }
-
- AppRegistry.registerComponent('LotsOfGreetings',() => LotsOfGreetings);
我们创建了一个 Greeting 对象 它类似于 一个 自定义 <Text/>
他可以接受属性为 name 传参@H_403_4@
LotsOfGreetings为我们的渲染对象 @H_403_4@
我们创建一个试图组 View
@H_403_4@
里面有3个 Greeting控件,并且给他们的name属性赋值。
运行下来就是上图的效果了。@H_403_4@