美文网首页
我的第一个React Native App

我的第一个React Native App

作者: pengjielele | 来源:发表于2018-04-11 17:20 被阅读20次

创建项目

- 安装create-react-native-app
yarn global add create-react-native-app

- 快速创建项目
create-react-native-app Haoji

- 运行项目
cd Haoji && yarn start

- 安装expo客户端,扫描终端上的二维码

项目结构

src   //项目源码      
----components //基础组件
----navigation //导航路由
----screens    //页面组件
----utils      //工具类
.babelrc
.gitignore
App.js //入口文件
app.json
package.json
README.md
最终项目结构

API设计

- 笔记列表
url: http://m.pengjielee.cn/api/v1/notes
method: get
params: page: 1, size: 10

- 创建笔记
url: http://m.pengjielee.cn/api/v1/notes
method: post
params: title: '', content: ''

- 笔记详情
url: http://m.pengjielee.cn/api/v1/notes/:id
method: get

- 笔记删除
url: http://m.pengjielee.cn/api/v1/notes/:id
method: delete

UI设计

笔记列表页
笔记详情页
新建笔记页
个人中心页
设置页

页面设计

  • 笔记列表页 [ Haoji/src/screens/NoteListScreen.js ]
  • 笔记详情页 [ Haoji/src/screens/NoteDetailScreen.js ]
  • 新建笔记页 [ Haoji/src/screens/NewNoteScreen.js ]
  • 个人中心页 [ Haoji/src/screens/MeScreen.js ]
  • 设置页 [ Haoji/src/screens/SettingScreen.js ]

导航设计

  • Notes (笔记列表)
  • Details (笔记详情)
  • NewNote (新建笔记)
  • Me (个人中心)
  • Setting (设置)

Note栈导航:

export const NoteStack = StackNavigator({
  Notes: {
    screen: NoteListScreen,
    navigationOptions: {
      title: "Note List",
      headerStyle: {
        backgroundColor: "#f36838"
      },
      headerTintColor: "#fff"
    }
  },
  Details: {
    screen: NoteDetailScreen,
    navigationOptions: {
      title: "Note Detail",
      headerStyle: {
        backgroundColor: "#f36838"
      },
      headerTintColor: "#fff"
    }
  }
});

新建笔记栈导航

export const NewNoteStack = StackNavigator({
  NoteNote: {
    screen: NewNoteScreen,
    navigationOptions: {
      title: "New Note",
      headerStyle: {
        backgroundColor: "#4b5cc4"
      },
      headerTintColor: "#fff"
    }
  }
});

个人中心栈导航

export const MeStack = StackNavigator({
  Me: {
    screen: MeScreen,
    navigationOptions: {
      title: "Me",
      headerStyle: {
        backgroundColor: "#ff4e20"
      },
      headerTintColor: "#fff"
    }
  },
  Setting: {
    screen: SettingScreen,
    navigationOptions: {
      title: "Setting",
      headerStyle: {
        backgroundColor: "#ff4e20"
      },
      headerTintColor: "#fff"
    }
  }
});

底部Tab导航

export const Tabs = TabNavigator(
  {
    Notes: {
      screen: NoteStack
    },
    New: {
      screen: NewNoteStack
    },
    Me: {
      screen: MeStack
    }
  }
);

Root栈导航

export const RootStack = StackNavigator(
  {
    Tabs: {
      screen: Tabs
    }
  },
  {
    mode: "modal",
    headerMode: "none",
    initialRouteName: "Tabs"
  }
);

React Native基础组件

  • View
  • Text
  • TextInput
  • Alert
  • FlatList
  • TouchableOpacity
  • ActivityIndicator
  • StyleSheet

第三方库:

源码

相关文章

网友评论

      本文标题:我的第一个React Native App

      本文链接:https://www.haomeiwen.com/subject/uucahftx.html