鱼C论坛

 找回密码
 立即注册
查看: 3038|回复: 1

[技术交流] 用react native开发手机app之插入图片与组件制作

[复制链接]
发表于 2017-8-4 10:46:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

export default class myreact extends Component {
  render() {
    return (
      <View style={styles.container}>
          <Image style={styles.img} source={require('./logo.png')}/> 
          <Text style={{fontSize:25}}>让编程改变<Text style={{color:'green'}}>世界</Text></Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#F5FCFF',
    justifyContent:'center', 
    flexWrap: 'wrap', 
    alignItems:'center'
  },
  img:{
    width:200,
    height:50
  } 
});

AppRegistry.registerComponent('myreact', () => myreact);
这就是插入图片的方法,把图片文件放进主项目目录里就行。另外text标签支持样式继承,在这里外层的字号大小被内层继承了。

效果图:
fdg.png

然后我们修改一下代码,把整个项目可以做成一个组件
import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  Image
} from 'react-native';
function Pic(){
  return(
    <View style={styles.container}>
          <Image style={styles.img} source={require('./logo.png')}/> 
          <Text style={{fontSize:25}}>让编程改变<Text style={{color:'green'}}>世界</Text></Text>
      </View>
    )
}
export default class myreact extends Component {
  render() {
    return (
      <Pic/>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#F5FCFF',
    justifyContent:'center', 
    flexWrap: 'wrap', 
    alignItems:'center'
  },
  img:{
    width:200,
    height:50
  } 
});

AppRegistry.registerComponent('myreact', () => myreact);
这种方法叫做函数组件,优点是执行速度快,缺点是功能比较少,还有一种方法叫做类组件
import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  Image
} from 'react-native';
class Pic extends React.Component{
  render(){
    return(
      <View style={styles.container}>
          <Image style={styles.img} source={require('./logo.png')}/> 
          <Text style={{fontSize:25}}>让编程改变<Text style={{color:'green'}}>世界</Text></Text>
      </View>
    )
}
}

export default class myreact extends Component {
  render() {
    return (
      <Pic/>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#F5FCFF',
    justifyContent:'center', 
    flexWrap: 'wrap', 
    alignItems:'center'
  },
  img:{
    width:200,
    height:50
  } 
});

AppRegistry.registerComponent('myreact', () => myreact);
一般都用这种方法,而且要把组件放进另外一个文件里,方便管理,只在主文件调用就可以了,方法如下:
先创建一个文件比如test.js,然后把我们写的组件类cut进那个文件,在添些东西进去:
import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  Image
} from 'react-native';
export default class Pic extends React.Component{
  render(){
    return(
      <View style={styles.container}>
          <Image style={styles.img} source={require('./logo.png')}/> 
          <Text style={{fontSize:25}}>让编程改变<Text style={{color:'green'}}>世界</Text></Text>
      </View>
    )
}
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#F5FCFF',
    justifyContent:'center', 
    flexWrap: 'wrap', 
    alignItems:'center'
  },
  img:{
          borderRadius: 20,
          borderColor: 'red',
          borderWidth: 2,
    width:200,
    height:50
  } 
});
要把头文件跟样式变量也得写在这文件里,我们刚才的源文件变为:
import React, { Component } from 'react';
import {
  AppRegistry,
  
} from 'react-native';
import Pic from './test.js'
export default class myreact extends Component {
  render() {
    return (
      <Pic/>
    );
  }
}

AppRegistry.registerComponent('myreact', () => myreact);
这样看起来就很规范了,我又加了些边角效果,效果图为:
aaaaa.png

评分

参与人数 1荣誉 +6 鱼币 +6 贡献 +6 收起 理由
不二如是 + 6 + 6 + 6 加油

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-4 12:22:11 | 显示全部楼层
哇喔
哇喔

6666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 01:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表