flutter 面試常見問題

在Flutter面試中,面試官可能會(huì)問到一系列涵蓋Flutter框架熏兄、Dart語言以及移動(dòng)應(yīng)用開發(fā)方面的問題树姨。以下是一些可能會(huì)被問到的常見問題:

1桥状、什么是Flutter?它的優(yōu)勢是什么辅斟?

Flutter 是由 Google 開發(fā)的開源移動(dòng)應(yīng)用開發(fā)框架,可以用來構(gòu)建高性能士飒、高保真度、跨平臺(tái)的移動(dòng)應(yīng)用侠坎。Flutter 提供了豐富的組件和工具,開發(fā)者可以使用 Dart 語言編寫應(yīng)用程序代碼实胸,并通過 Flutter 的渲染引擎將應(yīng)用程序渲染為原生平臺(tái)的 UI 組件。

Flutter 的優(yōu)勢包括:

  1. 跨平臺(tái)性: Flutter 允許開發(fā)者使用相同的代碼庫構(gòu)建 iOS 和 Android 應(yīng)用程序番官,大大簡化了跨平臺(tái)開發(fā)的工作流程庐完。開發(fā)者只需編寫一次代碼,即可在多個(gè)平臺(tái)上運(yùn)行應(yīng)用程序徘熔。

  2. 高性能: Flutter 使用自帶的渲染引擎(Skia)來繪制應(yīng)用程序界面门躯,不依賴于平臺(tái)的 UI 組件,因此具有優(yōu)異的性能表現(xiàn)酷师。Flutter 應(yīng)用程序可以實(shí)現(xiàn)流暢的動(dòng)畫和高性能的用戶體驗(yàn)讶凉。

  3. 豐富的組件庫: Flutter 提供了豐富的內(nèi)置組件庫,包括 Material Design 和 Cupertino 風(fēng)格的組件山孔,以及各種通用組件懂讯,開發(fā)者可以輕松構(gòu)建美觀、易用的用戶界面台颠。

  4. 快速開發(fā)周期: Flutter 提供了熱重載(Hot Reload)功能褐望,允許開發(fā)者在應(yīng)用程序運(yùn)行時(shí)即時(shí)查看代碼更改的效果,加速了開發(fā)周期串前,提高了開發(fā)效率瘫里。

  5. 靈活的UI設(shè)計(jì): Flutter 使用自定義繪制的方式來構(gòu)建界面,開發(fā)者可以完全控制每個(gè)像素的繪制過程荡碾,實(shí)現(xiàn)高度定制化的 UI 設(shè)計(jì)谨读,滿足各種復(fù)雜的設(shè)計(jì)需求。

  6. 強(qiáng)大的社區(qū)支持: Flutter 擁有龐大而活躍的開發(fā)者社區(qū)坛吁,提供了大量的文檔劳殖、教程贼邓、示例代碼和第三方庫,開發(fā)者可以輕松獲取支持和解決問題闷尿。

總的來說,F(xiàn)lutter 是一種強(qiáng)大而靈活的移動(dòng)應(yīng)用開發(fā)框架女坑,具有跨平臺(tái)性填具、高性能、豐富的組件庫匆骗、快速開發(fā)周期劳景、靈活的UI設(shè)計(jì)和強(qiáng)大的社區(qū)支持等優(yōu)勢,適用于各種類型的移動(dòng)應(yīng)用開發(fā)項(xiàng)目盟广。

2筋量、Flutter是如何實(shí)現(xiàn)跨平臺(tái)開發(fā)的桨武?

Flutter 實(shí)現(xiàn)跨平臺(tái)開發(fā)的關(guān)鍵在于其采用了自繪UI(即自定義渲染引擎)的方式呀酸。下面是 Flutter 實(shí)現(xiàn)跨平臺(tái)開發(fā)的主要原理和機(jī)制:

  1. 自繪UI: Flutter 不使用平臺(tái)原生的 UI 組件性誉,而是通過自帶的渲染引擎(Skia)來繪制應(yīng)用程序的用戶界面错览。這意味著 Flutter 應(yīng)用程序的界面是由 Flutter 自己的 UI 組件構(gòu)成的,而不是由底層操作系統(tǒng)提供的原生 UI 組件携冤。

  2. 統(tǒng)一的開發(fā)語言和框架: Flutter 使用 Dart 語言作為開發(fā)語言扣猫,開發(fā)者可以使用相同的代碼庫編寫應(yīng)用程序的邏輯和界面代碼申尤。Flutter 提供了豐富的組件和工具,使開發(fā)者能夠構(gòu)建出與平臺(tái)原生應(yīng)用相似的用戶界面勺远。

  3. 渲染引擎: Flutter 的渲染引擎負(fù)責(zé)將開發(fā)者編寫的 UI 代碼轉(zhuǎn)換為底層平臺(tái)的繪圖指令胶逢。這意味著 Flutter 應(yīng)用程序的界面是完全獨(dú)立于平臺(tái)的初坠,可以在 iOS 和 Android 等不同平臺(tái)上保持一致的外觀和行為。

  4. 訪問原生功能: Flutter 提供了一組平臺(tái)通道(Platform Channels)薯酝,允許開發(fā)者與底層平臺(tái)進(jìn)行通信并調(diào)用原生功能抄囚。開發(fā)者可以使用平臺(tái)通道來訪問設(shè)備的硬件功能幔托、系統(tǒng)服務(wù)和第三方 SDK重挑,從而實(shí)現(xiàn)與平臺(tái)原生應(yīng)用相似的功能和性能谬哀。

  5. 自適應(yīng)布局: Flutter 提供了豐富的自適應(yīng)布局組件史煎,使開發(fā)者能夠根據(jù)不同平臺(tái)和設(shè)備的特性來調(diào)整應(yīng)用程序的布局和外觀篇梭。這使得 Flutter 應(yīng)用程序能夠在不同尺寸和分辨率的設(shè)備上實(shí)現(xiàn)良好的用戶體驗(yàn)恬偷。

總的來說袍患,F(xiàn)lutter 實(shí)現(xiàn)跨平臺(tái)開發(fā)的關(guān)鍵在于其采用了自繪UI的方式,并提供了統(tǒng)一的開發(fā)語言和框架滞欠、渲染引擎仑撞、訪問原生功能和自適應(yīng)布局等機(jī)制,使開發(fā)者能夠輕松構(gòu)建出跨平臺(tái)桶良、高性能的移動(dòng)應(yīng)用程序曲秉。

3疲牵、Dart語言的特點(diǎn)是什么纲爸?

Dart 是一種由 Google 開發(fā)的面向?qū)ο蟾何谩㈩愃?C 語言的通用編程語言颓哮。它最初是為了構(gòu)建 Web 應(yīng)用程序而設(shè)計(jì)的冕茅,但現(xiàn)在已經(jīng)成為構(gòu)建各種類型應(yīng)用的多平臺(tái)語言哨坪,包括 Web姜挺、移動(dòng)應(yīng)用炊豪、桌面應(yīng)用和服務(wù)器端應(yīng)用拧篮。以下是 Dart 語言的一些主要特點(diǎn):

  1. 面向?qū)ο螅?/strong> Dart 是一種面向?qū)ο蟮恼Z言串绩,支持類和對(duì)象的概念礁凡,提供了面向?qū)ο缶幊趟璧奶匦裕绶庋b塞淹、繼承饱普、多態(tài)等套耕。

  2. 強(qiáng)類型: Dart 是一種強(qiáng)類型語言冯袍,所有變量都具有靜態(tài)類型康愤,并且在編譯時(shí)會(huì)進(jìn)行類型檢查,有助于提高代碼的健壯性和可維護(hù)性贮折。

  3. 可選類型: Dart 支持可選類型调榄,可以使用類型推斷來省略類型聲明每庆,也可以顯式聲明類型。這使得編寫代碼更加靈活,并且在需要時(shí)可以添加類型注解來提高代碼的清晰度和可讀性帖鸦。

  4. 異步編程支持: Dart 提供了豐富的異步編程支持作儿,包括 Future攻锰、Stream 和 async/await 等機(jī)制,使得編寫高效的異步代碼變得更加簡單和直觀寝志。

  5. 單線程模型: Dart 使用單線程模型,通過事件循環(huán)來處理異步操作唯竹,這種模型簡化了并發(fā)編程浸颓,并且有助于避免常見的線程安全問題产上。

  6. 可選參數(shù)和命名參數(shù): Dart 支持可選參數(shù)和命名參數(shù)的函數(shù)調(diào)用晋涣,這使得函數(shù)的調(diào)用更加靈活和清晰谢鹊,可以減少函數(shù)重載的需求。

  7. 內(nèi)置庫和工具: Dart 提供了豐富的內(nèi)置庫和工具兼耀,包括用于開發(fā) Web 應(yīng)用的 HTTP瘤运、JSON 庫尽超,用于異步編程的 Future傲绣、Stream 庫,以及用于單元測試塞琼、靜態(tài)分析等的工具彪杉。

  8. 跨平臺(tái)支持: Dart 支持跨平臺(tái)開發(fā)派近,可以使用 Flutter 框架構(gòu)建跨平臺(tái)的移動(dòng)應(yīng)用和桌面應(yīng)用攀唯,也可以使用 Dart Web 構(gòu)建 Web 應(yīng)用,使得開發(fā)人員可以在不同平臺(tái)上共享大部分代碼渴丸。

總的來說侯嘀,Dart 是一種現(xiàn)代化、靈活和功能豐富的編程語言谱轨,適用于各種類型的應(yīng)用開發(fā)戒幔,并且在 Google 的支持下不斷發(fā)展和完善。

4土童、Flutter中的Widget是什么诗茎?有哪些類型的Widget?

在Flutter中错沃,Widget是構(gòu)建用戶界面的基本單元醒叁,可以是一個(gè)按鈕租谈、一個(gè)文本框呻逆、一個(gè)布局等任何可視化的元素宜雀。Flutter中的所有東西都是Widget,包括整個(gè)應(yīng)用程序本身也是一個(gè)Widget邦蜜。Widget可以被組合在一起衣吠,形成一個(gè)層次結(jié)構(gòu)忧换,最終構(gòu)成完整的用戶界面刹缝。

Widget分為兩種類型:有狀態(tài)的和無狀態(tài)的厨疙。

  1. 無狀態(tài)的Widget(StatelessWidget): 無狀態(tài)的Widget是指其外觀在創(chuàng)建后不能更改的Widget。這意味著一旦創(chuàng)建,它們的外觀就不會(huì)再發(fā)生變化切蟋。StatelessWidget通常用于展示靜態(tài)信息什黑,如文本咐鹤、圖標(biāo)等棒搜。一個(gè)常見的例子是Text Widget闺鲸。

    class MyTextWidget extends StatelessWidget {
      final String text;
      
      MyTextWidget(this.text);
      
      @override
      Widget build(BuildContext context) {
        return Text(text);
      }
    }
    
  2. 有狀態(tài)的Widget(StatefulWidget): 有狀態(tài)的Widget是指其外觀可能會(huì)在運(yùn)行時(shí)發(fā)生變化的Widget。它們通常用于包含用戶交互令哟、動(dòng)畫或其他可能導(dǎo)致界面變化的操作已维。有狀態(tài)的Widget由兩個(gè)類組成:一個(gè)是StatefulWidget本身霉旗,另一個(gè)是與之關(guān)聯(lián)的State對(duì)象棉姐。

    class MyCounterWidget extends StatefulWidget {
      @override
      _MyCounterWidgetState createState() => _MyCounterWidgetState();
    }
    
    class _MyCounterWidgetState extends State<MyCounterWidget> {
      int counter = 0;
      
      void incrementCounter() {
        setState(() {
          counter++;
        });
      }
      
      @override
      Widget build(BuildContext context) {
        return Column(
          children: [
            Text('Counter: $counter'),
            ElevatedButton(
              onPressed: incrementCounter,
              child: Text('Increment'),
            ),
          ],
        );
      }
    }
    

這是一個(gè)簡單的例子,展示了一個(gè)有狀態(tài)的Widget,其中包含一個(gè)計(jì)數(shù)器和一個(gè)按鈕食棕,每次點(diǎn)擊按鈕時(shí)千埃,計(jì)數(shù)器的值會(huì)增加备韧。通過調(diào)用setState方法,F(xiàn)lutter會(huì)自動(dòng)調(diào)用build方法臀脏,更新UI以反映新的狀態(tài)秒啦。

除了StatelessWidget和StatefulWidget之外,F(xiàn)lutter還有一些其他常用的基本W(wǎng)idget窃植,如Container帝蒿、Row荐糜、Column巷怜、ListView等葛超,用于構(gòu)建不同類型的布局和組件。 Widget的組合和嵌套可以創(chuàng)建復(fù)雜的用戶界面延塑,使Flutter非常靈活和強(qiáng)大绣张。

5、Flutter中的異步編程是如何處理的关带?

在Flutter中侥涵,異步編程是通過Future、Stream和async/await等機(jī)制來處理的宋雏。這些機(jī)制允許在執(zhí)行長時(shí)間操作(如網(wǎng)絡(luò)請(qǐng)求芜飘、文件讀寫等)時(shí)不阻塞應(yīng)用程序的主線程,從而保持應(yīng)用的響應(yīng)性磨总。

以下是Flutter中異步編程的一些關(guān)鍵概念和處理方式:

  1. Future: Future表示一個(gè)延遲計(jì)算的值或錯(cuò)誤嗦明。它通常用于表示一次性的操作,比如一個(gè)網(wǎng)絡(luò)請(qǐng)求或一個(gè)耗時(shí)的計(jì)算蚪燕∪⑴疲可以使用.then()方法來注冊(cè)Future完成時(shí)的回調(diào),或者使用async/await語法來等待Future的結(jié)果馆纳。
Future<String> fetchUserData() {
  return Future.delayed(Duration(seconds: 1), () => 'User Data');
}

void main() async {
  var userData = await fetchUserData();
  print(userData); // 輸出:User Data
}
  1. Stream: Stream表示一系列異步事件的流诗良。它通常用于表示持續(xù)產(chǎn)生的事件,比如用戶輸入鲁驶、傳感器數(shù)據(jù)或者網(wǎng)絡(luò)數(shù)據(jù)流鉴裹。可以使用.listen()方法來監(jiān)聽Stream發(fā)出的事件钥弯,或者使用async/await for語法來等待Stream的事件壹罚。
Stream<int> countStream() async* {
  for (int i = 0; i < 5; i++) {
    await Future.delayed(Duration(seconds: 1));
    yield i;
  }
}

void main() async {
  await for (var count in countStream()) {
    print(count); // 輸出:0, 1, 2, 3, 4
  }
}
  1. async/await: async/await是一種語法糖,用于簡化異步編程寿羞。async關(guān)鍵字用于聲明一個(gè)函數(shù)是異步的猖凛,而await關(guān)鍵字用于等待一個(gè)異步操作的結(jié)果。在async函數(shù)中绪穆,可以使用await等待Future或Stream的結(jié)果辨泳。
Future<String> fetchData() async {
  var data = await fetchUserData();
  return 'Fetched Data: $data';
}

void main() async {
  var result = await fetchData();
  print(result); // 輸出:Fetched Data: User Data
}
  1. 處理異步錯(cuò)誤: 可以使用.catchError()方法或try/catch語句來捕獲異步操作中可能發(fā)生的錯(cuò)誤,并進(jìn)行相應(yīng)的處理玖院。
Future<String> fetchUserData() async {
  throw Exception('Error fetching user data');
}

void main() async {
  try {
    var userData = await fetchUserData();
    print(userData);
  } catch (e) {
    print('Error: $e'); // 輸出:Error: Exception: Error fetching user data
  }
}

這些是Flutter中處理異步編程的基本方式菠红,開發(fā)者可以根據(jù)具體的需求選擇合適的機(jī)制來實(shí)現(xiàn)異步操作,并確保應(yīng)用的響應(yīng)性和穩(wěn)定性难菌。

6试溯、Flutter中的狀態(tài)管理有哪些方式?

在Flutter中郊酒,有多種方式來管理應(yīng)用的狀態(tài)遇绞,每種方式都適用于不同規(guī)模和復(fù)雜度的應(yīng)用键袱。以下是一些常見的狀態(tài)管理方式:

  1. 基礎(chǔ)的setState: 對(duì)于簡單的小型應(yīng)用,可以使用StatefulWidget中的setState方法來管理狀態(tài)摹闽。這種方式簡單直接蹄咖,適用于少量的局部狀態(tài)更新。

  2. Provider: Provider是一種輕量級(jí)的狀態(tài)管理庫付鹿,它提供了一種簡單的方式來共享和管理應(yīng)用中的狀態(tài)澜汤。通過Provider,可以在應(yīng)用中訪問和更新全局狀態(tài)舵匾,并且可以將狀態(tài)與UI組件解耦俊抵。

  3. Bloc(業(yè)務(wù)邏輯組件): Bloc是一種基于流(Stream)的狀態(tài)管理庫,它將應(yīng)用的狀態(tài)和業(yè)務(wù)邏輯分離開來坐梯,使得應(yīng)用的狀態(tài)更易于管理和測試务蝠。Bloc通過事件和狀態(tài)之間的轉(zhuǎn)換來管理狀態(tài),并且可以輕松地實(shí)現(xiàn)復(fù)雜的狀態(tài)管理需求烛缔。

  4. Redux: Redux是一種流行的狀態(tài)管理模式馏段,它將應(yīng)用的狀態(tài)存儲(chǔ)在一個(gè)全局的狀態(tài)樹中,并且通過純函數(shù)來更新狀態(tài)践瓷。在Flutter中院喜,可以使用redux庫來實(shí)現(xiàn)Redux模式的狀態(tài)管理,它提供了一種可預(yù)測性和可測試性的狀態(tài)管理方案晕翠。

  5. GetX: GetX是一個(gè)輕量級(jí)的Flutter狀態(tài)管理庫喷舀,它提供了簡單、直觀的API來管理應(yīng)用的狀態(tài)淋肾。GetX支持依賴注入硫麻、路由管理、國際化等功能樊卓,并且性能優(yōu)秀拿愧,適用于各種規(guī)模的應(yīng)用。

  6. Riverpod: Riverpod是Provider的一個(gè)改進(jìn)版本碌尔,它提供了更強(qiáng)大的依賴注入功能和更靈活的狀態(tài)管理方案浇辜。Riverpod支持異步操作、延遲加載和狀態(tài)刷新等功能唾戚,使得狀態(tài)管理更加簡單和高效柳洋。

這些是Flutter中常用的狀態(tài)管理方式,每種方式都有自己的特點(diǎn)和適用場景叹坦,開發(fā)者可以根據(jù)應(yīng)用的需求選擇合適的狀態(tài)管理方式熊镣。

7、flutter 中的性能優(yōu)化

Flutter性能優(yōu)化是一個(gè)重要的開發(fā)方向,特別是在開發(fā)復(fù)雜應(yīng)用或要求高性能的應(yīng)用時(shí)绪囱。以下是一些常見的Flutter性能優(yōu)化策略:

  1. 使用const關(guān)鍵字: 在構(gòu)建Widget樹時(shí)测蹲,盡可能使用const關(guān)鍵字來創(chuàng)建常量Widget,這樣可以減少在重建時(shí)的開銷毕箍。

    const MyWidget();
    
  2. 避免不必要的重建: 使用constconst構(gòu)造函數(shù)創(chuàng)建的Widget在相同的參數(shù)下不會(huì)重建,可以減少Widget樹的重建次數(shù)道盏。同時(shí)而柑,避免使用不穩(wěn)定的動(dòng)態(tài)值作為key,以減少不必要的Widget重建荷逞。

  3. 使用ListView.builderGridView.builder 當(dāng)構(gòu)建大量相似的子Widget時(shí)媒咳,使用ListView.builderGridView.builder來延遲構(gòu)建和回收子Widget嵌削,減少內(nèi)存占用草丧。

    ListView.builder(
      itemCount: itemCount,
      itemBuilder: (context, index) {
        return MyListItem(index: index);
      },
    );
    
  4. 避免不必要的布局: 避免在每幀中重新計(jì)算不必要的布局信息。使用LayoutBuilderCustomSingleChildLayout來按需計(jì)算布局票摇。

  5. 使用const構(gòu)造函數(shù)和靜態(tài)資源: 使用const構(gòu)造函數(shù)創(chuàng)建靜態(tài)資源坠敷,如顏色妙同、邊框等,可以減少運(yùn)行時(shí)開銷膝迎。

    const Color myColor = const Color(0xFF00FF00);
    
  6. 使用RepaintBoundary 在具有復(fù)雜UI的子樹中粥帚,可以使用RepaintBoundary來將其分離為獨(dú)立的圖層,減少整體重繪的范圍限次。

    RepaintBoundary(
      child: // Your complex UI subtree here
    );
    
  7. 懶加載: 對(duì)于耗時(shí)的操作或資源密集型的操作芒涡,使用懶加載來延遲加載數(shù)據(jù)或資源,以提高應(yīng)用程序啟動(dòng)性能卖漫。

  8. 使用const枚舉: 對(duì)于常量值的枚舉费尽,使用const關(guān)鍵字可以減少內(nèi)存使用。

    enum MyEnum {
      value1,
      value2,
      value3,
    }
    
  9. 使用flutter analyzeflutter lint 使用Flutter的靜態(tài)分析工具來檢測潛在的性能問題和代碼風(fēng)格問題羊始,并按照建議進(jìn)行優(yōu)化旱幼。

  10. 使用flutter performance工具: 使用Flutter提供的性能工具來檢測性能瓶頸,定位慢速渲染或不必要的重建突委,以及優(yōu)化應(yīng)用程序的性能速警。

綜合利用以上策略,可以有效地改善Flutter應(yīng)用程序的性能鸯两,提高用戶體驗(yàn)闷旧。性能優(yōu)化是一個(gè)持續(xù)的過程,需要在開發(fā)的不同階段和迭代中進(jìn)行評(píng)估和改進(jìn)钧唐。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末忙灼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌该园,老刑警劉巖酸舍,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異里初,居然都是意外死亡啃勉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門双妨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淮阐,“玉大人,你說我怎么就攤上這事刁品∑兀” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵挑随,是天一觀的道長状您。 經(jīng)常有香客問我,道長兜挨,這世上最難降的妖魔是什么膏孟? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮拌汇,結(jié)果婚禮上骆莹,老公的妹妹穿的比我還像新娘。我一直安慰自己担猛,他們只是感情好幕垦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著傅联,像睡著了一般先改。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蒸走,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天仇奶,我揣著相機(jī)與錄音,去河邊找鬼比驻。 笑死该溯,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的别惦。 我是一名探鬼主播狈茉,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼掸掸!你這毒婦竟也來了氯庆?” 一聲冷哼從身側(cè)響起蹭秋,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎堤撵,沒想到半個(gè)月后仁讨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡实昨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年洞豁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荒给。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡丈挟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出锐墙,到底是詐尸還是另有隱情礁哄,我是刑警寧澤长酗,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布溪北,位于F島的核電站,受9級(jí)特大地震影響夺脾,放射性物質(zhì)發(fā)生泄漏之拨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一咧叭、第九天 我趴在偏房一處隱蔽的房頂上張望蚀乔。 院中可真熱鬧,春花似錦菲茬、人聲如沸吉挣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽睬魂。三九已至,卻和暖如春镀赌,著一層夾襖步出監(jiān)牢的瞬間氯哮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工商佛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留喉钢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓良姆,卻偏偏與公主長得像肠虽,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子玛追,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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