成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

使用 react-native-simple-router 組織你的React Native 頁(yè)面

wawor4827 / 2590人閱讀

摘要:是一款第三方導(dǎo)航組件。你可以通過(guò)它進(jìn)行合理的視圖組織。使用修改的你的如果是修改對(duì)應(yīng)文件即可。請(qǐng)記住必須在頂級(jí)路由中使用,如果你的鏈接潛入在多個(gè)組件中,你必須確保它能夠冒泡到它的父級(jí)。其他組件推薦本文同步自己的博客

React Native Simple Router是一款第三方導(dǎo)航組件。你可以通過(guò)它進(jìn)行合理的視圖組織。

項(xiàng)目地址

安裝

進(jìn)入你的項(xiàng)目目錄,如過(guò)沒(méi)有初始化項(xiàng)目可以react-native init your_project,然后在項(xiàng)目目錄安裝react-native-simple-router

 npm install react-native-simple-router --save
使用
import Router from "react-native-simple-router";

修改的你的index.ios.js,如果是Android修改對(duì)應(yīng)文件即可。

import React, { StyleSheet } from "react-native";

// 初始化頁(yè)面
class HelloPage extends React.Component {

  render() {
    return Hello world!;
  }

}

const styles = StyleSheet.create({
  header: {
    backgroundColor: "#5cafec",
  },
});

// 在這里定義你的路由
// - 其中name 將會(huì)成會(huì)頂部導(dǎo)航條的標(biāo)題內(nèi)容
// - `component`用于渲染頁(yè)面的組件
const firstRoute = {
  name: "Welcome!",
  component: HelloPage,
};

class MyApp extends React.Component {

  render() {
    return (
      
    );
  }
}

AppRegistry.registerComponent("routerTest", () => MyApp);

接下來(lái)你可以加入更多頁(yè)面,你可以通過(guò)this.props.toRoute()導(dǎo)航至另外一個(gè)組件。

我們定義另外一個(gè)頁(yè)面next.js,代碼很簡(jiǎn)單:

"use strict";

var React = require("react-native");

var {
    StyleSheet,
    View,
    Text,
    Image,
    TextInput,
    Component
} = React;

var styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
    backgroundColor: "#F5FCFF",
  },
  welcome: {
    fontSize: 20,
    textAlign: "center",
    margin: 10,
  },
  instructions: {
    textAlign: "center",
    color: "#333333",
    marginBottom: 5,
  },
});

class Next extends Component {
    constructor(props){
        super(props);
    }
    
    render() {
        var me = this;
        return (
          
            
              Welcome to Next Page!
            
          
        );
  }
}


module.exports = Next;

index.ios.js中主要加入下面方法

import React, { StyleSheet, PropTypes } from "react-native";
var Next = require("./next");
const propTypes = {
  toRoute: PropTypes.func.isRequired,
};

class HelloPage extends React.Component {

  constructor(props) {
      super(props);

      this.nextPage = this.nextPage.bind(this);
  }

  nextPage() {
    this.props.toRoute({
      name: "next screen",
      component: Next
    });
  }

  render() {
    return (
      
        
          Next page please!
        
      
    );
  }
}

HelloPage.propTypes = propTypes;

這個(gè)時(shí)候我們點(diǎn)擊 next page 即可導(dǎo)航至next頁(yè)面。請(qǐng)記住this.props.toRoute()必須在頂級(jí)路由中使用,如果你的鏈接潛入在多個(gè)組件中,你必須確保它能夠冒泡到它的父級(jí)。

配置

可以配置下面的屬性:

firstRoute(必須): 你導(dǎo)航的首頁(yè)

headerStyle: 改變你導(dǎo)航條的背景樣式

titleStyle:改變導(dǎo)航條里的文字樣式

bgStyle: 改變所有路由的背景樣式

borderBottomWidth: 底部導(dǎo)航條的寬度

backButtonComponent:默認(rèn)導(dǎo)航條會(huì)呈現(xiàn)一個(gè)back 文本的返回按鈕,當(dāng)然你可以自定義設(shè)置的組件

customAction:

hideNavigationBar: 隱藏導(dǎo)航條

statusBarProps:默認(rèn)獲取狀態(tài)欄的props,可以參考StatusBar Docs.
+

this.props.toRoute()需要傳入一個(gè)對(duì)象作為參數(shù)設(shè)置 。

name:路由的名稱(chēng),也會(huì)被用在導(dǎo)航條的文本顯示

component(必須):需要渲染的組件

leftCorner: 從導(dǎo)航左邊開(kāi)始開(kāi)始渲染

rightCorner:則是從右邊渲染相關(guān)組件

titleComponent:指定一個(gè)組件用于替換標(biāo)題,類(lèi)似Ins的第一頁(yè)

headerStyle: 指定新渲染組件的導(dǎo)航條樣式,你可以指定一個(gè)背景色,然后路由轉(zhuǎn)換是會(huì)平滑過(guò)渡

passProps:帶入一組參數(shù),通常是一個(gè)對(duì)象key-value給新的組件

titleProps:如果你設(shè)置了title為一個(gè)組件,這樣你可以把titleProps的值傳入進(jìn)去。

sceneConfig:控制轉(zhuǎn)場(chǎng)動(dòng)畫(huà),常見(jiàn)的參數(shù)如下:

Navigator.SceneConfigs.FadeAndroid
Navigator.SceneConfigs.FloatFromBottom
Navigator.SceneConfigs.FloatFromBottomAndroid
Navigator.SceneConfigs.FloatFromLeft
Navigator.SceneConfigs.FloatFromRight
Navigator.SceneConfigs.HorizontalSwipeJump
Navigator.SceneConfigs.PushFromRight
Navigator.SceneConfigs.VerticalDownSwipeJump
Navigator.SceneConfigs.VerticalUpSwipeJump

更多屬性參考可以參閱這里

this.props.replaceRoute的參數(shù)設(shè)置和toRoute一致,但是二者的區(qū)別在于toRoute會(huì)加入到你的堆棧中,而replaceRoute它將會(huì)替換當(dāng)前所在的路由。

如果你是在登錄或者登出的功能,使用replaceRoute會(huì)好過(guò)直接再導(dǎo)航至該路由。

this.props.resetToRoutetoRoute()傳入的參數(shù)一致,而它的差異在于,它會(huì)替換掉當(dāng)前的路由并且清空導(dǎo)航。如果你登錄成功或者注冊(cè)成功后,你并不希望退后,使用resetToRoute則會(huì)非常有用。

案例 Twitter App

一個(gè)簡(jiǎn)單的模仿twitter 的 應(yīng)用,你可以直接使用它,并借鑒它的寫(xiě)法。

import React, { AppRegistry } from "react-native";
import TwitterApp from "./node_modules/react-native-simple-router/examples/twitter-example";

AppRegistry.registerComponent("routerTest", () => TwitterApp);
Explorer app

node_modules/react-native-simple-router/examples/Explorer里面還有一個(gè)Demo,安裝依賴(lài)后便可以運(yùn)行.

我們可以大致參考作者的目錄架構(gòu)

+ images/
+ style
    + css
    + icons
+ components
+ service
+ pages
+ ios
+ android
- index.ios.js 
- index.android.js
...
反饋

react-native-simple-router實(shí)際來(lái)源于react-native-router,但是作者不再更新,因此我們遷移過(guò)來(lái),不過(guò)你依舊可以在原來(lái)issues找到你有可能遇到的問(wèn)題的答案。

其他組件推薦

React-Native-Router

React-Native-Button

react-native-gifted-listview

react-native-scrollable-tab-view

本文同步自己的博客:http://www.jackpu.com/shi-yong-react-native-simple-router-zu-zhi-ni-de-react-native-ye-mian/

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/79003.html

相關(guān)文章

  • React Native 開(kāi)發(fā)小Tips

    摘要:除此之外,部分頁(yè)面,其實(shí)完全可以由網(wǎng)頁(yè)去支持多端共用的功能,樓主親身遇到過(guò)的場(chǎng)景,就是圖表的繪制,我們的方案是一個(gè)頁(yè)面,需要微信,手機(jī)網(wǎng)頁(yè),和都具備該功能,而且我們手機(jī)網(wǎng)頁(yè)和客戶端打開(kāi)的稍微有區(qū)別,需要隱藏。 showImg(https://segmentfault.com/img/bVzxDW); 相信好多寫(xiě)React Native的都是前端出身,當(dāng)然遇見(jiàn)問(wèn)題的,也很多時(shí)候會(huì)想從前端...

    kevin 評(píng)論0 收藏0
  • 翻譯 | 從 ReactJS 到 React-Native—兩者的主要差異是什么?

    摘要:跟非常相似,但是在開(kāi)始嘗試你第一個(gè)之前,也需要了解兩者之間的一些差異。推薦的方式是使用提供的。能用到組件中的或者上以啟用這個(gè)組件的觸摸事件。 華翔,Web前端開(kāi)發(fā)工程師著作權(quán)歸作者所有,轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)。 showImg(https://segmentfault.com/img/bVUliz?w=640&h=235); React-Native已經(jīng)誕生有兩年左右了,自從適配了An...

    darkerXi 評(píng)論0 收藏0
  • 來(lái)聊聊怎么寫(xiě)react-native上的樣式吧

    摘要:我們來(lái)看看文檔上是怎么說(shuō)的吧在中,你并不需要學(xué)習(xí)什么特殊的語(yǔ)法來(lái)定義樣式。我們?nèi)匀皇鞘褂脕?lái)寫(xiě)樣式。這些樣式名基本上是遵循了上的的命名,只是按照的語(yǔ)法要求使用了駝峰命名法,例如將改為。 我遇到了什么問(wèn)題? 不久之前我重構(gòu)了一個(gè)古老的項(xiàng)目,總結(jié)了一些js方面的想法,不過(guò)對(duì)于一個(gè)前端項(xiàng)目而言不僅僅只由js組成的嘛,上學(xué)的時(shí)候老師和我說(shuō)HTML+CSS+JS對(duì)應(yīng)的是頁(yè)面的骨架、皮膚和肌肉。既然...

    Dionysus_go 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<