A cross-platform app for react-native begginer
GitHub - duf1991/DYFBuyApp: 我的第一个react-native学习成果，欢迎各位大佬star和issue!👏👏
DYFBuyApp
我的第一个react-native学习成果，欢迎各位大佬star和issue!👏👏




这个是我从零开始学习react-native的一个学习记录过程，简单易懂，但涵盖功能全面，基本可以算是一个比较完整的电商app了，希望能够给react-native的初学者一些帮助。因为公司刚接手一个新的RN项目，而本人对于RN等跨平台完全没有接触过，甚至没有任何react等前端基础，html,css,javascript也是从未接触，但一直对这方面比较感兴趣，因此正好趁此机会学习了一把，感觉很有成就感，找到了曾经那种从0到1的掌握技能的感觉,整个过程大概顶多一个月时间。虽然RN现在可能没有以前那么火热，但是其跨平台思想还是很值得学习的，比如google新出的flutter其中很多思想与RN大同小异，例如其组件的state控制页面渲染机制等。当然这个项目还有很多功能可以后续慢慢完善的地方，我会持续更新的。
如果有好的建议，欢迎指正。
预览




上面是整个app的基本效果，大家简单感受一下～
示例

利用 git clone 命令下载本仓库；
利用cd 命令切换到 RN工程目录下（即package.json上一级目录），执行npm install命令（这一步很重要！）
随后在RN工程目录下执行react-native run-ios 或 react-native run-andriod或者 打开 LPDSliderView.xcworkspace 或者 安卓工程 编译即可。

需求
XCode 9.0+
安装
npm install react-native-dyfbuyapp --save

使用
大家可以根据自己的业务需要自行扩展即可～

主要结构如下
var Main = React.createClass({
    getInitialState() {
        return {
            selectedTab: 'home'
        }
    },

    render() {
        return (
            <TabNavigator tabBarStyle={styles.tabBarStyle}>
                {/* --首页-- */}
                {this.renderTabNavigatorItem('首页','account-balance','account-balance','home', '首页', Home)}
                {/* --商家-- */}
                {this.renderTabNavigatorItem('商家','store','store','shop', '商家', Shop)}
                {/* --我的-- */}
                {this.renderTabNavigatorItem('我的','account-circle','account-circle','mine', '我的', Mine)}
                {/* --更多-- */}
                {this.renderTabNavigatorItem('更多','settings','settings','more', '更多', More)}
            </TabNavigator>

        )

    },

    renderTabNavigatorItem(title, iconName, selectedIconName, selectedTab, componentName, component) {
        return (
            <TabNavigator.Item
                title={title}
                renderIcon={() => <VectorIcon name={iconName} size={25} color={'gray'}></VectorIcon>}
                renderSelectedIcon={() => <VectorIcon name={selectedIconName} size={25} color={'orange'}></VectorIcon>}
                onPress={() => { this.setState({ selectedTab: selectedTab }) }}
                selected={this.state.selectedTab === selectedTab}
                titleStyle={styles.titleStyle}
                selectedTitleStyle={styles.selectedStyle}
            >
                {/* <Home></Home> */}
                <Navigator
                    initialRoute={{ name: componentName, component: component }}
                    configureScene={(route) => {
                        return Navigator.SceneConfigs.PushFromRight;
                    }}
                    renderScene={(route, navigator) => {
                        let Component = route.component;
                        return <Component {...route.params} navigator={navigator} />
                    }}
                >
                </Navigator>

            </TabNavigator.Item>

        )

    }

作者
Du Yingfeng, yingfeng.du02@ele.me
协议
DYFBuyApp 基于 MIT 协议进行分发和使用，更多信息参见协议文件。
