React Native —— react-navigation的使用

React Native中驼鹅,官方已經(jīng)推薦使用react-navigation來實(shí)現(xiàn)各個(gè)界面的跳轉(zhuǎn)和不同板塊的切換抛计。react-navigation主要包括三個(gè)組件:

  • StackNavigator 導(dǎo)航組件
  • TabNavigator 切換組件
  • DrawerNavigator 抽屜組件

StackNavigator用于實(shí)現(xiàn)各個(gè)頁面之間的跳轉(zhuǎn)弄捕,TabNavigator用來實(shí)現(xiàn)同一個(gè)頁面上不同界面的切換,DrawerNavigator 可以實(shí)現(xiàn)側(cè)滑的抽屜效果沟饥。

StackNavigator

StackNavigator組件采用堆棧式的頁面導(dǎo)航來實(shí)現(xiàn)各個(gè)界面跳轉(zhuǎn)珠叔。它的構(gòu)造函數(shù):

StackNavigator(RouteConfigs, StackNavigatorConfig)

RouteConfigsStackNavigatorConfig兩個(gè)參數(shù)。

RouteConfigs

RouteConfigs 參數(shù)表示各個(gè)頁面路由配置虎眨,類似于android原生開發(fā)中的AndroidManifest.xml蟋软,它是讓導(dǎo)航器知道需要導(dǎo)航的路由對(duì)應(yīng)的頁面。

const RouteConfigs = {
    Home: {
        screen: HomePage,
        navigationOptions: ({navigation}) => ({
            title: '首頁',
        }),
    },
    Find: {
        screen: FindPage,
        navigationOptions: ({navigation}) => ({
            title: '發(fā)現(xiàn)',
        }),
    },
    Mine: {
        screen: MinePage,
        navigationOptions: ({navigation}) => ({
            title: '我的',
        }),
    },
};

這里給導(dǎo)航器配置了三個(gè)頁面嗽桩,Home岳守、FindMine為路由名稱碌冶,screen屬性值HomePage湿痢、FindPageMinePage為對(duì)應(yīng)路由的頁面扑庞。

navigationOptions為對(duì)應(yīng)路由頁面的配置選項(xiàng):

  • title - 可以作為頭部標(biāo)題headerTitle譬重,或者Tab標(biāo)題tabBarLabel
  • header - 自定義的頭部組件,使用該屬性后系統(tǒng)的頭部組件會(huì)消失
  • headerTitle - 頭部的標(biāo)題罐氨,即頁面的標(biāo)題
  • headerBackTitle - 返回標(biāo)題臀规,默認(rèn)為title
  • headerTruncatedBackTitle - 返回標(biāo)題不能顯示時(shí)(比如返回標(biāo)題太長了)顯示此標(biāo)題,默認(rèn)為“Back”
  • headerRight - 頭部右邊組件
  • headerLeft - 頭部左邊組件
  • headerStyle - 頭部組件的樣式
  • headerTitleStyle - 頭部標(biāo)題的樣式
  • headerBackTitleStyle - 頭部返回標(biāo)題的樣式
  • headerTintColor - 頭部顏色
  • headerPressColorAndroid - Android 5.0以上MD風(fēng)格的波紋顏色
  • gesturesEnabled - 否能側(cè)滑返回栅隐,iOS默認(rèn)true塔嬉,Android默認(rèn)false
StackNavigatorConfig

StackNavigatorConfig參數(shù)表示導(dǎo)航器的配置,包括導(dǎo)航器的初始頁面租悄、各個(gè)頁面之間導(dǎo)航的動(dòng)畫谨究、頁面的配置選項(xiàng)等等:

const StackNavigatorConfig = {
    initialRouteName: 'Home',
    initialRouteParams: {initPara: '初始頁面參數(shù)'},
    navigationOptions: {
        title: '標(biāo)題',
        headerTitleStyle: {fontSize: 18, color: '#666666'},
        headerStyle: {height: 48, backgroundColor: '#fff'},
    },
    paths: 'page/main',
    mode: 'card',
    headerMode: 'screen',
    cardStyle: {backgroundColor: "#ffffff"},
    transitionConfig: (() => ({
        screenInterpolator: CardStackStyleInterpolator.forHorizontal,
    })),
    onTransitionStart: (() => {
        console.log('頁面跳轉(zhuǎn)動(dòng)畫開始');
    }),
    onTransitionEnd: (() => {
        console.log('頁面跳轉(zhuǎn)動(dòng)畫結(jié)束');
    }),
};
  • initialRouteName - 導(dǎo)航器組件中初始顯示頁面的路由名稱,如果不設(shè)置泣棋,則默認(rèn)第一個(gè)路由頁面為初始顯示頁面
  • initialRouteParams - 給初始路由的參數(shù)胶哲,在初始顯示的頁面中可以通過this.props.navigation.state.params來獲取
  • navigationOptions - 路由頁面的配置選項(xiàng),它會(huì)被RouteConfigs 參數(shù)中的 navigationOptions的對(duì)應(yīng)屬性覆蓋潭辈。
  • paths - 路由中設(shè)置的路徑的覆蓋映射配置
  • mode - 頁面跳轉(zhuǎn)方式纪吮,有cardmodal兩種,默認(rèn)為card
    • card - 原生系統(tǒng)默認(rèn)的的跳轉(zhuǎn)
    • modal - 只針對(duì)iOS平臺(tái)萎胰,模態(tài)跳轉(zhuǎn)
  • headerMode - 頁面跳轉(zhuǎn)時(shí)碾盟,頭部的動(dòng)畫模式,有float技竟、screen冰肴、none三種:
    • float - 漸變,類似iOS的原生效果
    • screen - 標(biāo)題與屏幕一起淡入淡出
    • none - 沒有動(dòng)畫
  • cardStyle - 為各個(gè)頁面設(shè)置統(tǒng)一的樣式,比如背景色熙尉,字體大小等
  • transitionConfig - 配置頁面跳轉(zhuǎn)的動(dòng)畫联逻,覆蓋默認(rèn)的動(dòng)畫效果
  • onTransitionStart - 頁面跳轉(zhuǎn)動(dòng)畫即將開始時(shí)調(diào)用
  • onTransitionEnd - 頁面跳轉(zhuǎn)動(dòng)畫一旦完成會(huì)馬上調(diào)用

頁面的配置選項(xiàng)navigationOptions通常還可以在對(duì)應(yīng)頁面中去靜態(tài)配置,比如在HomePage頁面中:

export default class HomePage extends Component {

    // 配置頁面導(dǎo)航選項(xiàng)
    static navigationOptions = ({navigation}) => ({
        title: 'HOME',
        titleStyle: {color: '#ff00ff'},
        headerStyle:{backgroundColor:'#000000'}
    });

    render() {
        return (
            <View></View>
        )
    };
}

同樣地检痰,在頁面里面采用靜態(tài)的方式配置navigationOptions中的屬性包归,會(huì)覆蓋StackNavigator構(gòu)造函數(shù)中兩個(gè)參數(shù)RouteConfigsStackNavigatorConfig配置的navigationOptions里面的對(duì)應(yīng)屬性。navigationOptions中屬性的優(yōu)先級(jí)是:
頁面中靜態(tài)配置 > RouteConfigs > StackNavigatorConfig

有了RouteConfigsStackNavigatorConfig兩個(gè)參數(shù)铅歼,就可以構(gòu)造出一個(gè)導(dǎo)航器組件StackNavigator公壤,直接引用該組件:

const Navigator = StackNavigator(RouteConfigs, StackNavigatorConfig);

export default class MainComponent extends Component {
    render() {
        return (
            <Navigator/>
        )
    };
}

已經(jīng)配置好導(dǎo)航器以及對(duì)應(yīng)的路由頁面了,但是要完成頁面之間的跳轉(zhuǎn)椎椰,還需要navigation厦幅。

navigation

在導(dǎo)航器中的每一個(gè)頁面,都有navigation屬性慨飘,該屬性有以下幾個(gè)屬性/方法:

  • navigate - 跳轉(zhuǎn)到其他頁面
  • state - 當(dāng)前頁面導(dǎo)航器的狀態(tài)
  • setParams - 更改路由的參數(shù)
  • goBack - 返回
  • dispatch - 發(fā)送一個(gè)action
navigete

調(diào)用這個(gè)方法可以跳轉(zhuǎn)到導(dǎo)航器中的其他頁面确憨,此方法有三個(gè)參數(shù):
routeName 導(dǎo)航器中配置的路由名稱
params 傳遞參數(shù)到下一個(gè)頁面
action action
比如:this.props.navigation.navigate('Find', {param: 'i am the param'});

state

state里面包含有傳遞過來的參數(shù)paramskey瓤的、路由名稱routeName休弃,打印log可以看得到:

{ 
  params: { param: 'i am the param' },
  key: 'id-1500546317301-1',
  routeName: 'Mine' 
}
setParams

更改當(dāng)前頁面路由的參數(shù),比如可以用來更新頭部的按鈕或者標(biāo)題圈膏。

componentDidMount() {
    this.props.navigation.setParams({param:'i am the new param'})
}
goBack

回退塔猾,可以不傳,也可以傳參數(shù)本辐,還可以傳null

this.props.navigation.goBack();       // 回退到上一個(gè)頁面
this.props.navigation.goBack(null);   // 回退到任意一個(gè)頁面
this.props.navigation.goBack('Home'); // 回退到Home頁面

TabNavigator

TabNavigator医增,即是Tab選項(xiàng)卡慎皱,類似于原生android中的TabLayout,它的構(gòu)造函數(shù):

TabNavigator(RouteConfigs, TabNavigatorConfig)

api和StackNavigator類似叶骨,參數(shù)RouteConfigs是路由配置茫多,參數(shù)TabNavigatorConfig是Tab選項(xiàng)卡配置。

RouteConfigs

路由配置和StackNavigator中是一樣的忽刽,配置路由以及對(duì)應(yīng)的screen頁面天揖,navigationOptions為對(duì)應(yīng)路由頁面的配置選項(xiàng):

  • title - Tab標(biāo)題,可用作headerTitletabBarLabel回退標(biāo)題
  • tabBarVisible - Tab的是否可見跪帝,沒有設(shè)置的話默認(rèn)為true
  • tabBarIcon - Tab的icon組件今膊,可以根據(jù){focused: boolean, tintColor: string}方法來返回一個(gè)icon組件
  • tabBarLabel - Tab中顯示的標(biāo)題字符串或者組件,也可以根據(jù){ focused: boolean, tintColor: string }方法返回一個(gè)組件
TabNavigatorConfig
  • tabBarComponent - Tab選項(xiàng)卡組件伞剑,有TabBarBottomTabBarTop兩個(gè)值斑唬,在iOS中默認(rèn)為TabBarBottom,在Android中默認(rèn)為TabBarTop
    • TabBarTop - 在頁面的頂部
    • TabBarBottom - 在頁面的底部
  • tabBarPosition - Tab選項(xiàng)卡的位置恕刘,有 topbottom兩個(gè)值
  • swipeEnabled - 是否可以滑動(dòng)切換Tab選項(xiàng)卡
  • animationEnabled - 點(diǎn)擊Tab選項(xiàng)卡切換界面是否需要?jiǎng)赢?/li>
  • lazy - 是否懶加載頁面
  • initialRouteName - 初始顯示的Tab對(duì)應(yīng)的頁面路由名稱
  • order - 用路由名稱數(shù)組來表示Tab選項(xiàng)卡的順序缤谎,默認(rèn)為路由配置順序
  • paths - 路徑配置
  • backBehavior - androd點(diǎn)擊返回鍵時(shí)的處理,有initialRoutenone兩個(gè)值
    • initailRoute - 返回初始界面
    • none - 退出
  • tabBarOptions - Tab配置屬性褐着,用在TabBarTopTabBarBottom時(shí)有些屬性不一致:
    • 用于TabBarTop時(shí):
      • activeTintColor - 選中的文字顏色
      • inactiveTintColor - 未選中的文字顏色
      • showIcon - 是否顯示圖標(biāo)坷澡,默認(rèn)顯示
      • showLabel - 是否顯示標(biāo)簽,默認(rèn)顯示
      • upperCaseLabel - 是否使用大寫字母含蓉,默認(rèn)使用
      • pressColor - android 5.0以上的MD風(fēng)格波紋顏色
      • pressOpacity - android 5.0以下或者iOS按下的透明度
      • scrollEnabled - 是否可以滾動(dòng)
      • tabStyle - 單個(gè)Tab的樣式
      • indicatorStyle - 指示器的樣式
      • labelStyle - 標(biāo)簽的樣式
      • iconStyle - icon的樣式
      • style - 整個(gè)TabBar的樣式
  • 用于TabBarBottom時(shí):
    • activeTintColor - 選中Tab的文字顏色
    • activeBackgroundColor - 選中Tab的背景顏色
    • inactiveTintColor - 未選中Tab的的文字顏色
    • inactiveBackgroundColor - 未選中Tab的背景顏色
    • showLabel - 是否顯示標(biāo)題频敛,默認(rèn)顯示
    • style - 整個(gè)TabBar的樣式
    • labelStyle - 標(biāo)簽的樣式
    • tabStyle - 單個(gè)Tab的樣式
底部Tab導(dǎo)航示例
import React, {Component} from 'react';
import {StackNavigator, TabBarBottom, TabNavigator} from "react-navigation";
import HomeScreen from "./index18/HomeScreen";
import NearByScreen from "./index18/NearByScreen";
import MineScreen from "./index18/MineScreen";
import TabBarItem from "./index18/TabBarItem";
export default class MainComponent extends Component {
    render() {
        return (
            <Navigator/>
        );
    }
}

const TabRouteConfigs = {
    Home: {
        screen: HomeScreen,
        navigationOptions: ({navigation}) => ({
            tabBarLabel: '首頁',
            tabBarIcon: ({focused, tintColor}) => (
                <TabBarItem
                    tintColor={tintColor}
                    focused={focused}
                    normalImage={require('./img/tabbar/pfb_tabbar_homepage_2x.png')}
                    selectedImage={require('./img/tabbar/pfb_tabbar_homepage_selected_2x.png')}
                />
            ),
        }),
    },
    NearBy: {
        screen: NearByScreen,
        navigationOptions: {
            tabBarLabel: '附近',
            tabBarIcon: ({focused, tintColor}) => (
                <TabBarItem
                    tintColor={tintColor}
                    focused={focused}
                    normalImage={require('./img/tabbar/pfb_tabbar_merchant_2x.png')}
                    selectedImage={require('./img/tabbar/pfb_tabbar_merchant_selected_2x.png')}
                />
            ),
        },
    }
    ,
    Mine: {
        screen: MineScreen,
        navigationOptions: {
            tabBarLabel: '我的',
            tabBarIcon: ({focused, tintColor}) => (
                <TabBarItem
                    tintColor={tintColor}
                    focused={focused}
                    normalImage={require('./img/tabbar/pfb_tabbar_mine_2x.png')}
                    selectedImage={require('./img/tabbar/pfb_tabbar_mine_selected_2x.png')}
                />
            ),
        },
    }
};
const TabNavigatorConfigs = {
    initialRouteName: 'Home',
    tabBarComponent: TabBarBottom,
    tabBarPosition: 'bottom',
    lazy: true,
};
const Tab = TabNavigator(TabRouteConfigs, TabNavigatorConfigs);
const StackRouteConfigs = {
    Tab: {
        screen: Tab,
    }
};
const StackNavigatorConfigs = {
    initialRouteName: 'Tab',
    navigationOptions: {
        title: '標(biāo)題',
        headerStyle: {backgroundColor: '#5da8ff'},
        headerTitleStyle: {color: '#333333'},
    }
};
const Navigator = StackNavigator(StackRouteConfigs, StackNavigatorConfigs);
頂部Tab選項(xiàng)卡示例
import React, {Component} from "react";
import {StackNavigator, TabBarTop, TabNavigator} from "react-navigation";
import HomeScreen from "./index18/HomeScreen";
import NearByScreen from "./index18/NearByScreen";
import MineScreen from "./index18/MineScreen";
export default class MainComponent extends Component {
    render() {
        return (
            <Navigator/>
        );
    }
}

const TabRouteConfigs = {
    Home: {
        screen: HomeScreen,
        navigationOptions: ({navigation}) => ({
            tabBarLabel: '首頁',
        }),
    },
    NearBy: {
        screen: NearByScreen,
        navigationOptions: {
            tabBarLabel: '附近',
        },
    }
    ,
    Mine: {
        screen: MineScreen,
        navigationOptions: {
            tabBarLabel: '我的',
        },
    }
};
const TabNavigatorConfigs = {
    initialRouteName: 'Home',
    tabBarComponent: TabBarTop,
    tabBarPosition: 'top',
    lazy: true,
    tabBarOptions: {}
};
const Tab = TabNavigator(TabRouteConfigs, TabNavigatorConfigs);
const StackRouteConfigs = {
    Tab: {
        screen: Tab,
    }
};
const StackNavigatorConfigs = {
    initialRouteName: 'Tab',
    navigationOptions: {
        title: '標(biāo)題',
        headerStyle: {backgroundColor: '#5da8ff'},
        headerTitleStyle: {color: '#333333'},
    }
};
const Navigator = StackNavigator(StackRouteConfigs, StackNavigatorConfigs);

DrawerNavigator

在原生Android MD 風(fēng)格里面很多app都會(huì)采用側(cè)滑抽屜來做主頁面的導(dǎo)航,利用DrawerNavigator在RN中可以很方便來實(shí)現(xiàn)抽屜導(dǎo)航谴餐。

DrawerNavigator(RouteConfigs, DrawerNavigatorConfig)

DrawerNavigator的構(gòu)造函數(shù)一樣姻政,參數(shù)配置也類似。

RouteConfigs

抽屜導(dǎo)航的路由配置RouteConfigs岂嗓,和TabNavigator的路由配置完全一樣汁展,screen配置對(duì)應(yīng)路由頁面,navigationOptions為對(duì)應(yīng)頁面的抽屜配置選項(xiàng):

  • title - 抽屜標(biāo)題厌殉,和headerTitle食绿、drawerLabel一樣
  • drawerLabel - 標(biāo)簽字符串,或者自定義組件公罕, 可以根據(jù){ focused: boolean, tintColor: string }函數(shù)來返回一個(gè)自定義組件作為標(biāo)簽
  • drawerIcon - 抽屜icon器紧,可以根據(jù){ focused: boolean, tintColor: string }函數(shù)來返回一個(gè)自定義組件作為icon
DrawerNavigatorConfig

抽屜配置項(xiàng)屬性:

  • drawerWidth - 抽屜寬度,可以使用Dimensions獲取屏幕的寬度楼眷,動(dòng)態(tài)計(jì)算
  • drawerPosition - 抽屜位置铲汪,可以是left或者right
  • contentComponent - 抽屜內(nèi)容組件,可以自定義側(cè)滑抽屜中的所有內(nèi)容罐柳,默認(rèn)為DrawerItems
  • contentOptions - 用來配置抽屜內(nèi)容的屬性掌腰。當(dāng)用來配置DrawerItems是配置屬性選項(xiàng):
    • items - 抽屜欄目的路由名稱數(shù)組,可以被修改
    • activeItemKey - 當(dāng)前選中頁面的key id
    • activeTintColor - 選中條目狀態(tài)的文字顏色
    • activeBackgroundColor - 選中條目的背景色
    • inactiveTintColor - 未選中條目狀態(tài)的文字顏色
    • inactiveBackgroundColor - 未選中條目的背景色
    • onItemPress(route) - 條目按下時(shí)會(huì)調(diào)用此方法
    • style - 抽屜內(nèi)容的樣式
    • labelStyle - 抽屜的條目標(biāo)題/標(biāo)簽樣式
  • initialRouteName - 初始化展示的頁面路由名稱
  • order - 抽屜導(dǎo)航欄目順序张吉,用路由名稱數(shù)組表示
  • paths - 路徑
  • backBehavior - androd點(diǎn)擊返回鍵時(shí)的處理齿梁,有initialRoute和none兩個(gè)值,initailRoute:返回初始界面肮蛹,none:退出
抽屜導(dǎo)航示例
import React, {Component} from 'react';
import {DrawerNavigator, StackNavigator, TabBarBottom, TabNavigator} from "react-navigation";
import HomeScreen from "./index18/HomeScreen";
import NearByScreen from "./index18/NearByScreen";
import MineScreen from "./index18/MineScreen";
import TabBarItem from "./index18/TabBarItem";
export default class MainComponent extends Component {
    render() {
        return (
            <Navigator/>
        );
    }
}
const DrawerRouteConfigs = {
    Home: {
        screen: HomeScreen,
        navigationOptions: ({navigation}) => ({
            drawerLabel : '首頁',
            drawerIcon : ({focused, tintColor}) => (
                <TabBarItem
                    tintColor={tintColor}
                    focused={focused}
                    normalImage={require('./img/tabbar/pfb_tabbar_homepage_2x.png')}
                    selectedImage={require('./img/tabbar/pfb_tabbar_homepage_selected_2x.png')}
                />
            ),
        }),
    },
    NearBy: {
        screen: NearByScreen,
        navigationOptions: {
            drawerLabel : '附近',
            drawerIcon : ({focused, tintColor}) => (
                <TabBarItem
                    tintColor={tintColor}
                    focused={focused}
                    normalImage={require('./img/tabbar/pfb_tabbar_merchant_2x.png')}
                    selectedImage={require('./img/tabbar/pfb_tabbar_merchant_selected_2x.png')}
                />
            ),
        },
    },
    Mine: {
        screen: MineScreen,
        navigationOptions: {
            drawerLabel : '我的',
            drawerIcon : ({focused, tintColor}) => (
                <TabBarItem
                    tintColor={tintColor}
                    focused={focused}
                    normalImage={require('./img/tabbar/pfb_tabbar_mine_2x.png')}
                    selectedImage={require('./img/tabbar/pfb_tabbar_mine_selected_2x.png')}
                />
            ),
        },
    }
};
const DrawerNavigatorConfigs = {
    initialRouteName: 'Home',
    tabBarComponent: TabBarBottom,
    tabBarPosition: 'bottom',
    lazy: true,
    tabBarOptions: {}
};
const Drawer = DrawerNavigator(DrawerRouteConfigs, DrawerNavigatorConfigs);
const StackRouteConfigs = {
    Drawer: {
        screen: Drawer,
    }
};
const StackNavigatorConfigs = {
    initialRouteName: 'Drawer',
    navigationOptions: {
        title: '標(biāo)題',
        headerStyle: {backgroundColor: '#5da8ff'},
        headerTitleStyle: {color: '#333333'},
    }
};
const Navigator = StackNavigator(StackRouteConfigs, StackNavigatorConfigs);

源碼:https://gitee.com/xiaojianjun/DD.git (index20.js勺择、index21.js、index22.js)

參考

https://reactnavigation.org/docs/
ReactNative導(dǎo)航新寵兒react-navigation

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末伦忠,一起剝皮案震驚了整個(gè)濱河市省核,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌昆码,老刑警劉巖芳撒,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件邓深,死亡現(xiàn)場離奇詭異,居然都是意外死亡笔刹,警方通過查閱死者的電腦和手機(jī)芥备,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舌菜,“玉大人萌壳,你說我怎么就攤上這事∪赵拢” “怎么了袱瓮?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長爱咬。 經(jīng)常有香客問我尺借,道長,這世上最難降的妖魔是什么精拟? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任燎斩,我火速辦了婚禮,結(jié)果婚禮上蜂绎,老公的妹妹穿的比我還像新娘栅表。我一直安慰自己,他們只是感情好师枣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布怪瓶。 她就那樣靜靜地躺著,像睡著了一般践美。 火紅的嫁衣襯著肌膚如雪洗贰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天陨倡,我揣著相機(jī)與錄音敛滋,去河邊找鬼。 笑死玫膀,一個(gè)胖子當(dāng)著我的面吹牛矛缨,可吹牛的內(nèi)容都是我干的爹脾。 我是一名探鬼主播帖旨,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼灵妨!你這毒婦竟也來了解阅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤泌霍,失蹤者是張志新(化名)和其女友劉穎货抄,沒想到半個(gè)月后述召,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蟹地,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年积暖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怪与。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡夺刑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出分别,到底是詐尸還是另有隱情遍愿,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布耘斩,位于F島的核電站沼填,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏括授。R本人自食惡果不足惜坞笙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望刽脖。 院中可真熱鬧羞海,春花似錦、人聲如沸曲管。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽院水。三九已至腊徙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間檬某,已是汗流浹背撬腾。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留恢恼,地道東北人民傻。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像场斑,于是被迫代替她去往敵國和親漓踢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容