• react-native 详解


    1.获取主屏幕尺寸

    // 导入类库

    var Dimensions = require('Dimensions');

    // 样式

    const styles = StyleSheet.create({
        container: {
            backgroundColor:'blue',
            height:Dimensions.get('window').height,
            Dimensions.get('window').width
        },
    });

    2.Image 图片

    {/* 设置尺寸的情况下 */}

    <Image source={require('./img/icon.jpg')} style={styles.imgStyle}></Image>

    {/* uri是固定写法,后面跟上图片网络URL地址的字符串即可,还有,网络图片必须设置图片的大小,否则无法显示,一般还需要配合填充方式以达到想要的效果 */}

    <Image source={{uri:'https://img.alicdn.com/tps/TB1OvT9NVXXXXXdaFXXXXXXXXXX-520-280.jpg'}} style={styles.imgStyle}></Image>

    3.TextInput 文本输入框

    4.View 中的触摸属性 onPress

    Touchable --> TouchableHighlight(高亮触摸) TouchableOpacity(不透明触摸)

    5. // 用于设置一些值固定不变或上下界面值传递

    getDefaultProps(){
        return{
            number1: 1,
            number2: 2
        }
    },

    // 用于设置一些可变或者用来刷新界面

    getInitialState(){
        return{
            sum:0
        }
    },

    6.

    componentWillMount:		相当于OC中的 ViewWillAppear 方法,在组件简要被加载到视图之前调用,没有太多的功能
    
    render:					它是每个组件必需具备的方法,本质上是个函数,并且返回JSX或者其他组件来构成DOM,和Android的XML布局类似
    
    componentDidMount:			在调用了render方法,组件加载成功并被成功渲染出来之后,所要执行的后续操作,一般都会在这个函数中进行,比如经常要面对的网络请求等加载数据操作
    
    componentWillReceiveProps:	指父元素对组件的props或state进行了修改
    
    shouldComponentUpadate:	一般用于优化,可以返回false或true来控制是否进行渲染
    
    componentWillUpdate:		组件刷新前调用,类似componentWillMount
    
    componentDidUpdate:		更新后的hook

    7.{/* 实例化ScrollView */}

    <ScrollView
    	style={styles.scrollViewStyle}
    	horizontal={true} // 水平方向
    	showsHorizontalScrollIndicator={false} // 隐藏水平指示器
    	showsVerticalScrollIndicator={false} // 隐藏垂直指示器
    	pagingEnabled={true} // 开启分页功能
    	>
    		{/* 实例化内部子视图 */}
    		{this.renderItem()}
    </ScrollView>

    8.ListView组件

    步骤一:创建一个ListView.DataSource数据源,然后给它传递一个普通的数组数据

    getInitialState(){
        // 初始化数据源(rowHasChanged是优化的一种手段,只有当r1 !== r2的时候才会重新渲染)
        var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
        return{
            // 给dataSource传递一组 数组
            dataSource: ds.cloneWithRows(['内容0', '内容1', '内容2', '内容3', '内容4', '内容5'])
        }
    },

    步骤二:使用数据源实例化一个ListView组件,定义一个renderRow回调函数,这个函数会接受数组中的每个数据作为参数,并返回一个可渲染的组件(也就是该列表的每一行Item)

    render() {
        return (
            <View style={styles.container}>
                // 根据数据源实例化一个ListView
                <ListView
                    style={{backgroundColor:'yellow'}}
                    // 获取数据源
                    dataSource={this.state.dataSource}
                    // 根据数据源创建一个Item
                    // 注:这里的this.renderRow是隐式写法,系统会根据函数的需要,将对应的参数传递过去(共有4个参数:rowData, sectionID, rowID, highlightRow)
                    renderRow={this.renderRow}
                />
            </View>
        );
    }, 

    // 返回一个Item

    renderRow(rowData,sectionID,rowID) {
        return(
            // 实例化Item
            <View>
                <Text style={{backgroundColor:'red', height:44}}>内容{rowData},在第{sectionID}组第{rowID}行</Text>
            </View>
        )
    }

    9.NavigatorIOS

    10.Navigator 属性

    11.View

    12.Text

    13.fetch

    fetch(url, init)
    .then((response) => { // 数据解析方式
    
    })
    .then((responseData) => { // 获取到的数据处理
    
    })
    .catch((error) => { // 错误处理
    
    })
    .done();

    .

  • 相关阅读:
    Python--安装 pip 和 scapy
    windows设置代理
    麦子的《我奋斗了18年才和你坐在一起喝咖啡》
    Tar命令
    test
    markdown语法
    js apply call
    windows文件大小和占用空间为何不一样
    prolog笔记
    html文字超出显示省略号
  • 原文地址:https://www.cnblogs.com/crazycode2/p/7172231.html
Copyright © 2020-2023  润新知