uni-app

uni-app官網(wǎng)

一种蝶、快速上手

1傀顾、通過(guò)hbuilderX可視化界面

1.1、 hbuilderX下載
1.2贱鄙、下載完成之后創(chuàng)建、運(yùn)行uni-app

  • 點(diǎn)擊工具欄的文件》新建》項(xiàng)目


    image.png
  • 選擇uni-app類型姨谷,輸入工程名逗宁,選擇模板,點(diǎn)擊創(chuàng)建梦湘,即可創(chuàng)建成功

    image.png

  • 在微信開(kāi)發(fā)者工具里面運(yùn)行瞎颗。進(jìn)行所創(chuàng)建的項(xiàng)目件甥,點(diǎn)擊工具欄運(yùn)行》運(yùn)行到小程序模擬器》微信開(kāi)發(fā)者工具,即可在微信開(kāi)發(fā)者工具里面體驗(yàn)uni-app

    image.png

    \color{red}{注:}首次使用需要配置小程序ide的相關(guān)路徑哼拔,才可運(yùn)行成功引有。
    uni-app默認(rèn)把項(xiàng)目編譯到根目錄的unpackage目錄。
    image.png

  • \color{red}{排坑1·:請(qǐng)選擇含app.json / project.config.json的目錄}
    在微信開(kāi)發(fā)者工具導(dǎo)入項(xiàng)目時(shí)發(fā)現(xiàn)報(bào):請(qǐng)選擇含app.json / project.config.json的目錄

    image.png

    目錄顯示如下:
    image.png

    解決:選擇含app.js文件倦逐,如圖:
    image.png

2譬正、通過(guò)vue-cli命令行

  • 環(huán)境安裝
 // 全局安裝vue-cli
npm install -g @vue/cli 
  • 創(chuàng)建uni-app
// 使用正式版(對(duì)應(yīng)HBuilderX最新正式版)
vue create -p dcloudio/uni-preset-vue my-project

// 使用alpha版(對(duì)應(yīng)HBuilderX最新alpha版)
vue create -p dcloudio/uni-preset-vue#alpha my-alpha-project
  • 運(yùn)行、發(fā)布uni-app
npm run dev:%PLATFORM%
npm run build:%PLATFORM%

%PLATFORM%可取值如下:

平臺(tái)
app-plus app平臺(tái)生成打包資源(僅支持npm run build:app-plus檬姥,也就是App平臺(tái)運(yùn)行調(diào)試不支持cli方式曾我,需在HBuilderX中運(yùn)行調(diào)試)
h5 H5
mp-alipay 支付寶小程序
mp-baidu 百度小程序
mp-weixin 微信小程序
mp-toutiao 字節(jié)跳動(dòng)小程序
mp-qq qq 小程序
mp-360 360 小程序
quickapp-webview 快應(yīng)用通用
quickapp-webview-union 快應(yīng)用聯(lián)盟
quickapp-webview-huawei 快應(yīng)用華為

二、框架

1健民、目錄結(jié)構(gòu)

image.png

2抒巢、生命周期

  • 應(yīng)用生命周期:
函數(shù)名 說(shuō)明
onLaunch 當(dāng)uni-app 初始化完成時(shí)觸發(fā)(全局只觸發(fā)一次)
onShow 當(dāng) uni-app 啟動(dòng),或從后臺(tái)進(jìn)入前臺(tái)顯示
onHide 當(dāng) uni-app 從前臺(tái)進(jìn)入后臺(tái)
onError 當(dāng) uni-app 報(bào)錯(cuò)時(shí)觸發(fā)
onUniNViewMessage 對(duì) nvue 頁(yè)面發(fā)送的數(shù)據(jù)進(jìn)行監(jiān)聽(tīng)秉犹,可參考 nvue 向 vue 通訊
onUnhandledRejection 對(duì)未處理的 Promise 拒絕事件監(jiān)聽(tīng)函數(shù)(暫時(shí)只支持 CLI 創(chuàng)建的項(xiàng)目使用 CLI 工程蛉谜,更新 uni 相關(guān)版本到 2.0.0-alpha-28020200701003 即可支持 onShareTimeline)
  • 頁(yè)面生命周期
函數(shù)名 說(shuō)明 平臺(tái)差異說(shuō)明 最低版本
onLoad 監(jiān)聽(tīng)頁(yè)面加載,其參數(shù)為上個(gè)頁(yè)面?zhèn)鬟f的數(shù)據(jù)凤优,參數(shù)類型為Object(用于頁(yè)面?zhèn)鲄ⅲ┰寐瑓⒖?a target="_blank">示例
onShow 監(jiān)聽(tīng)頁(yè)面顯示。頁(yè)面每次出現(xiàn)在屏幕上都觸發(fā)筑辨,包括從下級(jí)頁(yè)面點(diǎn)返回露出當(dāng)前頁(yè)面
onReady 監(jiān)聽(tīng)頁(yè)面初次渲染完成俺驶。注意如果渲染速度快,會(huì)在頁(yè)面進(jìn)入動(dòng)畫(huà)完成前觸發(fā)
onHide 監(jiān)聽(tīng)頁(yè)面隱藏
onUnload 監(jiān)聽(tīng)頁(yè)面卸載
onResize 監(jiān)聽(tīng)窗口尺寸變化 App棍辕、微信小程序
onPullDownRefresh 監(jiān)聽(tīng)用戶下拉動(dòng)作暮现,一般用于下拉刷新,參考示例
onReachBottom 頁(yè)面上拉觸底事件的處理函數(shù)
onTabItemTap 點(diǎn)擊 tab 時(shí)觸發(fā)楚昭,參數(shù)為Object栖袋,具體見(jiàn)下方注意事項(xiàng) 微信小程序、百度小程序抚太、H5塘幅、App(自定義組件模式)
onShareAppMessage 用戶點(diǎn)擊右上角分享 微信小程序、百度小程序尿贫、字節(jié)跳動(dòng)小程序电媳、支付寶小程序
onPageScroll 監(jiān)聽(tīng)頁(yè)面滾動(dòng),參數(shù)為Object
onNavigationBarButtonTap 監(jiān)聽(tīng)原生標(biāo)題欄按鈕點(diǎn)擊事件庆亡,參數(shù)為Object 5+ App匾乓、H5
onBackPress 監(jiān)聽(tīng)頁(yè)面返回,返回 event = {from:backbutton又谋、 navigateBack} 拼缝,backbutton 表示來(lái)源是左上角返回按鈕或 android 返回鍵娱局;navigateBack表示來(lái)源是 uni.navigateBack ;詳細(xì)說(shuō)明及使用:onBackPress 詳解 App咧七、H5
onNavigationBarSearchInputChanged 監(jiān)聽(tīng)原生標(biāo)題欄搜索輸入框輸入內(nèi)容變化事件 App衰齐、H5 1.6.0
onNavigationBarSearchInputConfirmed 監(jiān)聽(tīng)原生標(biāo)題欄搜索輸入框搜索事件,用戶點(diǎn)擊軟鍵盤(pán)上的“搜索”按鈕時(shí)觸發(fā)猪叙。 App娇斩、H5 1.6.0
onNavigationBarSearchInputClicked 監(jiān)聽(tīng)原生標(biāo)題欄搜索輸入框點(diǎn)擊事件 App、H5 1.6.0
onShareTimeline 監(jiān)聽(tīng)用戶點(diǎn)擊右上角轉(zhuǎn)發(fā)到朋友圈(暫時(shí)只支持 CLI 創(chuàng)建的項(xiàng)目) 微信小程序 使用 CLI 工程穴翩,更新 uni 相關(guān)版本到 2.0.0-alpha-28020200701003 即可支持 onShareTimeline
onAddToFavorites 監(jiān)聽(tīng)用戶點(diǎn)擊右上角收藏(暫時(shí)只支持 CLI 創(chuàng)建的項(xiàng)目) 微信小程序 使用 CLI 工程犬第,更新 uni 相關(guān)版本到 2.0.0-alpha-28020200701003 即可支持 onShareTimeline

3、路由

路由方式 頁(yè)面棧表現(xiàn) 觸發(fā)時(shí)機(jī)
初始化 新頁(yè)面入棧 uni-app 打開(kāi)的第一個(gè)頁(yè)面
打開(kāi)新頁(yè)面 新頁(yè)面入棧 調(diào)用 API uni.navigateTo 芒帕、使用組件 <navigator open-type="navigate"/>
頁(yè)面重定向 當(dāng)前頁(yè)面出棧歉嗓,新頁(yè)面入棧 調(diào)用 API uni.redirectTo 、使用組件 <navigator open-type="redirectTo"/>
頁(yè)面返回 頁(yè)面不斷出棧背蟆,直到目標(biāo)返回頁(yè) 調(diào)用 API uni.navigateBack 鉴分、使用組件 <navigator open-type="navigateBack"/> 、用戶按左上角返回按鈕带膀、安卓用戶點(diǎn)擊物理back按鍵
Tab 切換 頁(yè)面全部出棧志珍,只留下新的 Tab 頁(yè)面 調(diào)用 API uni.switchTab 、使用組件 <navigator open-type="switchTab"/> 垛叨、用戶切換 Tab
重加載 頁(yè)面全部出棧伦糯,只留下新的頁(yè)面 調(diào)用 API uni.reLaunch 、使用組件 <navigator open-type="reLaunch"/>

4嗽元、運(yùn)行環(huán)境判斷

  • 開(kāi)發(fā)環(huán)境和運(yùn)行環(huán)境可以通過(guò)process.env.NODE_ENV來(lái)判斷敛纲。一般用于連接測(cè)試服務(wù)器或生產(chǎn)服務(wù)器的動(dòng)態(tài)切換。
if(process.env.NODE_ENV === 'development'){
    console.log('開(kāi)發(fā)環(huán)境')
}else{
    console.log('生產(chǎn)環(huán)境')
}
  • 判斷平臺(tái)
    -- 編譯期判斷
// 編譯期判斷 編譯期判斷剂癌,即條件編譯淤翔,不同平臺(tái)在編譯出包后已經(jīng)是不同的代碼
// #ifdef H5
    alert("只有h5平臺(tái)才有alert方法")
// #endif
// 如上代碼只會(huì)編譯到H5的發(fā)行包里,其他平臺(tái)的包不會(huì)包含如上代碼佩谷。

-- 運(yùn)行期編譯
運(yùn)行期判斷是指代碼已經(jīng)打入包中旁壮,仍然需要在運(yùn)行期判斷平臺(tái),此時(shí)可使用uni.getSystemInfoSync().platform判斷客戶端環(huán)境是 Android谐檀、iOS 還是小程序開(kāi)發(fā)工具(在百度小程序開(kāi)發(fā)工具抡谐、微信小程序開(kāi)發(fā)工具、支付寶小程序開(kāi)發(fā)工具中使用 uni.getSystemInfoSync().platform 返回值均為 devtools)

switch(uni.getSystemInfoSync().platform){
    case 'android':
       console.log('運(yùn)行Android上')
       break;
    case 'ios':
       console.log('運(yùn)行iOS上')
       break;
    default:
       console.log('運(yùn)行在開(kāi)發(fā)者工具上')
       break;
}

5稚补、頁(yè)面樣式與布局

  • 尺寸單位(屏幕像素=px童叠,響應(yīng)式px=rpx)
    uni-app寬度計(jì)算公式為:750 * 元素在設(shè)計(jì)稿中的寬度 / 設(shè)計(jì)稿基準(zhǔn)寬度
  • 樣式導(dǎo)入(@import "../../common/uni.css";)
  • 內(nèi)聯(lián)樣式(支持使用 style框喳、class 屬性來(lái)控制組件的樣式)
  • 支持的選擇器(.class #id element ::after ::before
  • 全局樣式和局部樣式
    定義在 App.vue 中的樣式為全局樣式课幕,作用于每一個(gè)頁(yè)面厦坛。在 pages 目錄下 的 vue 文件中定義的樣式為局部樣式,只作用在對(duì)應(yīng)的頁(yè)面乍惊,并會(huì)覆蓋 App.vue 中相同的選擇器杜秸。(nvue頁(yè)面暫不支持全局樣式)
  • css變量
CSS變量 描述 App 小程序 H5
--status-bar-height 系統(tǒng)狀態(tài)欄高度 系統(tǒng)狀態(tài)欄高度、nvue注意見(jiàn)下 25px 0
--window-top 內(nèi)容區(qū)域距離頂部的距離 0 0 NavigationBar 的高度
--window-bottom 內(nèi)容區(qū)域距離底部的距離 0
  • 固定值
組件 描述 App H5
NavigationBar 導(dǎo)航欄 44px 44px
TabBar 底部選項(xiàng)卡 HBuilderX 2.3.4之前為56px润绎,2.3.4起和H5調(diào)為一致撬碟,統(tǒng)一為 50px。但可以自主更改高度) 50px
  • flex布局
    • Flex 布局是什么莉撇?
      Flex 是 Flexible Box 的縮寫(xiě)呢蛤,意為"彈性布局",用來(lái)為盒狀模型提供最大的靈活性棍郎。
    • 基本概念
      采用 Flex 布局的元素其障,稱為 Flex 容器(flex container),簡(jiǎn)稱"容器"涂佃。它的所有子元素自動(dòng)成為容器成員励翼,稱為 Flex 項(xiàng)目(flex item),簡(jiǎn)稱"項(xiàng)目"辜荠。
      image

      容器默認(rèn)存在兩根軸:水平的主軸(main axis)和垂直的交叉軸(cross axis)汽抚。主軸的開(kāi)始位置(與邊框的交叉點(diǎn))叫做main start,結(jié)束位置叫做main end伯病;交叉軸的開(kāi)始位置叫做cross start造烁,結(jié)束位置叫做cross end
      項(xiàng)目默認(rèn)沿主軸排列狱从。單個(gè)項(xiàng)目占據(jù)的主軸空間叫做main size膨蛮,占據(jù)的交叉軸空間叫做cross size
    • 容器的屬性
      flex-direction決定主軸的方向(即項(xiàng)目的排列方向)
.box {
  flex-direction: row | row-reverse | column | column-reverse;
}
// row(默認(rèn)值):主軸為水平方向季研,起點(diǎn)在左端敞葛。
// row-reverse:主軸為水平方向,起點(diǎn)在右端与涡。
// column:主軸為垂直方向惹谐,起點(diǎn)在上沿。
// column-reverse:主軸為垂直方向驼卖,起點(diǎn)在下沿氨肌。

flex-wrap默認(rèn)情況下,項(xiàng)目都排在一條線(又稱"軸線")上

.box{
  flex-wrap: nowrap | wrap | wrap-reverse;
}
// nowrap(默認(rèn)):不換行酌畜。
// wrap:換行怎囚,第一行在上方。
// wrap-reverse:換行,第一行在下方恳守。

flex-flowflex-direction屬性和flex-wrap屬性的簡(jiǎn)寫(xiě)形式考婴,默認(rèn)值為row nowrap

.box {
  flex-flow: <flex-direction> || <flex-wrap>;
}

justify-content定義了項(xiàng)目在主軸上的對(duì)齊方式催烘。

.box {
  justify-content: flex-start | flex-end | center | space-between | space-around;
}
// flex-start(默認(rèn)值):左對(duì)齊
// flex-end:右對(duì)齊
// center: 居中
// space-between:兩端對(duì)齊沥阱,項(xiàng)目之間的間隔都相等。
// space-around:每個(gè)項(xiàng)目?jī)蓚?cè)的間隔相等伊群。所以考杉,項(xiàng)目之間的間隔比項(xiàng)目與邊框的間隔大一倍。

align-items 定義項(xiàng)目在交叉軸上如何對(duì)齊舰始。

.box {
  align-items: flex-start | flex-end | center | baseline | stretch;
}
// flex-start:交叉軸的起點(diǎn)對(duì)齊崇棠。
// flex-end:交叉軸的終點(diǎn)對(duì)齊。
// center:交叉軸的中點(diǎn)對(duì)齊丸卷。
// baseline: 項(xiàng)目的第一行文字的基線對(duì)齊易茬。
// stretch(默認(rèn)值):如果項(xiàng)目未設(shè)置高度或設(shè)為auto,將占滿整個(gè)容器的高度及老。

align-content定義了多根軸線的對(duì)齊方式抽莱。如果項(xiàng)目只有一根軸線,該屬性不起作用

.box {
  align-content: flex-start | flex-end | center | space-between | space-around | stretch;
}
// flex-start:與交叉軸的起點(diǎn)對(duì)齊骄恶。
// flex-end:與交叉軸的終點(diǎn)對(duì)齊食铐。
// center:與交叉軸的中點(diǎn)對(duì)齊。
// space-between:與交叉軸兩端對(duì)齊僧鲁,軸線之間的間隔平均分布虐呻。
// space-around:每根軸線兩側(cè)的間隔都相等。所以寞秃,軸線之間的間隔比軸線與邊框的間隔大一倍斟叼。
// stretch(默認(rèn)值):軸線占滿整個(gè)交叉軸。
  • 項(xiàng)目的屬性
    order定義項(xiàng)目的排列順序春寿。數(shù)值越小朗涩,排列越靠前,默認(rèn)為0
.item {
  order: <integer>;
}

flex-grow定義項(xiàng)目的放大比例绑改,默認(rèn)為0谢床,即如果存在剩余空間,也不放大厘线。

.item {
  flex-grow: <number>; /* default 0 */
}

flex-shrink定義了項(xiàng)目的縮小比例识腿,默認(rèn)為1,即如果空間不足造壮,該項(xiàng)目將縮小渡讼。

.item {
  flex-shrink: <number>; /* default 1 */
}

flex-basis 定義了在分配多余空間之前,項(xiàng)目占據(jù)的主軸空間(main size)。瀏覽器根據(jù)這個(gè)屬性成箫,計(jì)算主軸是否有多余空間栖雾。它的默認(rèn)值為auto,即項(xiàng)目的本來(lái)大小伟众。

.item {
  flex-basis: <length> | auto; /* default auto */
}

flex是flex-grow, flex-shrink 和 flex-basis的簡(jiǎn)寫(xiě),默認(rèn)值為0 1 auto召廷。后兩個(gè)屬性可選凳厢。

.item {
  flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
}

align-self允許單個(gè)項(xiàng)目有與其他項(xiàng)目不一樣的對(duì)齊方式,可覆蓋align-items屬性竞慢。默認(rèn)值為auto先紫,表示繼承父元素的align-items屬性,如果沒(méi)有父元素筹煮,則等同于stretch遮精。

.item {
  align-self: auto | flex-start | flex-end | center | baseline | stretch;
}
  • 背景圖片
    • 支持在css里設(shè)置背景圖片
    • 本地背景圖片的引用路徑推薦使用以 ~@ 開(kāi)頭的絕對(duì)路徑
 .test2 {
     background-image: url('~@/static/logo.png');
 }
  • 字體圖標(biāo)(字體圖標(biāo),使用方式與普通 web 項(xiàng)目相同)

6败潦、小程序組件支持

  • 使用方法
// 在pages.json 對(duì)應(yīng)頁(yè)面的 style -> usingComponents 引入組件:
{
    "pages": [
        {
            "path": "index/index",
            "style": {
                "usingComponents": {
                    // #ifdef APP-PLUS || MP-WEIXIN || MP-QQ
                     "custom": "/wxcomponents/custom/index"
                    // #endif
                    // #ifdef MP-BAIDU
                     "custom": "/swancomponents/custom/index"
                    // #endif
                    // #ifdef MP-ALIPAY
                     "custom": "/mycomponents/custom/index"
                    // #endif
                }
            }
        }
    ]
}

// 在頁(yè)面中使用
<!-- 頁(yè)面模板 (index.vue) -->
<view>
    <!-- 在頁(yè)面中對(duì)自定義組件進(jìn)行引用 -->
    <custom name="uni-app"></custom>
</view>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末本冲,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子劫扒,更是在濱河造成了極大的恐慌檬洞,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沟饥,死亡現(xiàn)場(chǎng)離奇詭異添怔,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)贤旷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)广料,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人幼驶,你說(shuō)我怎么就攤上這事艾杏。” “怎么了盅藻?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵糜颠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我萧求,道長(zhǎng)其兴,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任夸政,我火速辦了婚禮元旬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己匀归,他們只是感情好坑资,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著穆端,像睡著了一般袱贮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上体啰,一...
    開(kāi)封第一講書(shū)人閱讀 51,598評(píng)論 1 305
  • 那天攒巍,我揣著相機(jī)與錄音,去河邊找鬼荒勇。 笑死柒莉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沽翔。 我是一名探鬼主播兢孝,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼仅偎!你這毒婦竟也來(lái)了跨蟹?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤橘沥,失蹤者是張志新(化名)和其女友劉穎喷市,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體威恼,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡品姓,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了箫措。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腹备。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖斤蔓,靈堂內(nèi)的尸體忽然破棺而出植酥,到底是詐尸還是另有隱情,我是刑警寧澤弦牡,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布友驮,位于F島的核電站,受9級(jí)特大地震影響驾锰,放射性物質(zhì)發(fā)生泄漏卸留。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一椭豫、第九天 我趴在偏房一處隱蔽的房頂上張望耻瑟。 院中可真熱鬧旨指,春花似錦、人聲如沸喳整。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)框都。三九已至搬素,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間魏保,已是汗流浹背熬尺。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留囱淋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓餐塘,卻偏偏與公主長(zhǎng)得像妥衣,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子戒傻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355