混合开发的大趋势之一React Native Props (属性)

前端之家收集整理的这篇文章主要介绍了混合开发的大趋势之一React Native Props (属性)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

转载请注明出处:王亟亟的大牛之路

还是老规矩,先安利: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@

我对他的理解是 “属性”@H_403_4@

那么何为属性?@H_403_4@

在 Object-oriented programming(面向对象)的概念里
一个对象它可能包含数据、属性代码方法
就像 人是一个对象
他有一个属性身高
而身高 185CM 其实就是属性的数据@H_403_4@

而Props 就是 RN中 属性的概念@H_403_4@


官方对属性的解释与描述如下
@H_403_4@

大多数组件在创建时就可以使用各种参数来进行定制。这些参数就是props(属性)。@H_403_4@

然后举了个Image的例子,我们来看下源码@H_403_4@

  1. import React,{ Component } from 'react';
  2. import { AppRegistry,Image } from 'react-native';
  3.  
  4. class Bananas extends Component {
  5. render() {
  6. let pic = {
  7. uri: 'https://upload.wikimedia.org/wikipedia/commons/d/de/Bananavarieties.jpg'
  8. };
  9. return (
  10. <Image source={pic} style={{width: 193,height: 110}}/>
  11. );
  12. }
  13. }
  14.  
  15. 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@

  1. import React,Text,View } from 'react-native';
  2.  
  3. class Greeting extends Component {
  4. render() {
  5. return (
  6. <Text>Hello {this.props.name}!</Text>
  7. );
  8. }
  9. }
  10.  
  11. class LotsOfGreetings extends Component {
  12. render() {
  13. return (
  14. <View style={{alignItems: 'center'}}>
  15. <Greeting name='Rexxar' />
  16. <Greeting name='Jaina' />
  17. <Greeting name='Valeera' />
  18. </View>
  19. );
  20. }
  21. }
  22.  
  23. AppRegistry.registerComponent('LotsOfGreetings',() => LotsOfGreetings);

我们创建了一个 Greeting 对象 它类似于 一个 自定义 <Text/>
他可以接受属性为 name 传参@H_403_4@

LotsOfGreetings为我们的渲染对象 @H_403_4@

我们创建一个试图组 View@H_403_4@

里面有3个 Greeting控件,并且给他们的name属性赋值。
运行下来就是上图的效果了。@H_403_4@

属性的概念和我们 在 C C++ java等语言的 Perple.name可以 .出它的属性一个概念@H_403_4@

下一篇我会继续翻一下一章节 State@H_403_4@

猜你在找的React相关文章