Vue學(xué)習(xí)記錄

目標(biāo):了解Vue, 了解常用的Vue的一些工具,用vue cli搭建一個(gè)測試用例洛波,在瀏覽器上面運(yùn)行起來全肮。

了解Vue

百科定義

Vue (讀音 /vju?/塞蹭,類似于 view) 是一套用于構(gòu)建用戶界面的漸進(jìn)式JavaScript框架。與其它大型框架不同的是门坷,Vue 被設(shè)計(jì)為可以自底向上逐層應(yīng)用宣鄙。Vue 的核心庫只關(guān)注視圖層,方便與第三方庫或既有項(xiàng)目整合默蚌。

同類的技術(shù)

AngularJS: 誕生于2009年冻晤,由Misko Hevery 等人創(chuàng)建,后為Google所收購绸吸。是一款優(yōu)秀的前端JS框架鼻弧,已經(jīng)被用于Google的多款產(chǎn)品當(dāng)中设江。AngularJS有著諸多特性,最為核心的是:MVC(Model–view–controller)攘轩、模塊化叉存、自動(dòng)化雙向數(shù)據(jù)綁定、語義化標(biāo)簽度帮、依賴注入等等歼捏。

React: 起源于 Facebook 的內(nèi)部項(xiàng)目,因?yàn)樵摴緦?duì)市場上所有 JavaScript MVC 框架够傍,都不滿意甫菠,就決定自己寫一套,用來架設(shè) Instagram 的網(wǎng)站冕屯。做出來以后寂诱,發(fā)現(xiàn)這套東西很好用,就在2013年5月開源了安聘。主要用于構(gòu)建UI痰洒,很多人認(rèn)為 React 是 MVC 中的 V(視圖)。

AngularJS浴韭、React丘喻、Vue.js并稱前端3大框架。

同類技術(shù)優(yōu)缺點(diǎn)

[站外圖片上傳中...(image-455a7b-1591406644886)]

優(yōu)點(diǎn) 缺點(diǎn)
Vue.js 輕量級(jí),學(xué)習(xí)成本低 生態(tài)不太成熟
angularJS 有優(yōu)秀的組件系統(tǒng) 學(xué)習(xí)曲線是非常陡峭
React 豐富的生態(tài)系統(tǒng) 學(xué)習(xí)曲線陡峭

vue對(duì)比鏈接:https://cn.vuejs.org/v2/guide/comparison.html#AngularJS-Angular-1

  • vue vs React :合嚴(yán)格的 Flux 架構(gòu)念颈,適合超大規(guī)模多人協(xié)作的復(fù)雜項(xiàng)目泉粉。理論上 Vue 配合類似架構(gòu)也可以勝任這樣的用例,但缺少類似 Flux 這樣的官方架構(gòu)榴芳。小快靈的項(xiàng)目上嗡靡,Vue 和 React 的選擇更多是開發(fā)風(fēng)格的偏好。對(duì)于需要對(duì) DOM 進(jìn)行很多自定義操作的項(xiàng)目窟感,Vue 的靈活性優(yōu)于 React讨彼。

  • vue vs Angular:Angular的學(xué)習(xí)曲線是非常陡峭的——作為一個(gè)框架,它的 API 面積比起 Vue 要大得多柿祈,你也因此需要理解更多的概念才能開始有效率地工作哈误。當(dāng)然,Angular 本身的復(fù)雜度是因?yàn)樗脑O(shè)計(jì)目標(biāo)就是只針對(duì)大型的復(fù)雜應(yīng)用躏嚎;但不可否認(rèn)的是蜜自,這也使得它對(duì)于經(jīng)驗(yàn)不甚豐富的開發(fā)者相當(dāng)?shù)牟挥押谩?/p>

漸進(jìn)式JavaScript框架

vue官網(wǎng)的第一句話就是漸進(jìn)式JavaScript框架,我的理解就是循序漸進(jìn)可以自底向上逐層應(yīng)用開發(fā)的框架紧索,可以單獨(dú)一個(gè)頁面用來做表單袁辈,也可以整個(gè)項(xiàng)目用來做框架,可以一步一步引入vue珠漂,模塊化需要那個(gè)就引入那個(gè)晚缩。

Vue時(shí)間軸

[站外圖片上傳中...(image-4996c9-1591406644886)]

  • 2013: 在Google工作的尤雨溪尾膊,受到Angular的啟發(fā),從中提取自己所喜歡的部分荞彼,開發(fā)出了一款輕量框架冈敛,最初命名為Seed。

  • 2013.12:這粒種子發(fā)芽了鸣皂,更名為Vue抓谴,版本號(hào)是0.6.0。

  • 2014.01.24:Vue正式對(duì)外發(fā)布寞缝,版本號(hào)是0.8.0癌压。

  • 2014.02.25:vue版本0.9.0發(fā)布(代號(hào)Animatrix動(dòng)畫版的駭客帝國),此后重要的版本都會(huì)有自己的代號(hào)荆陆。

  • 2015.06.13:vue版本0.12.0發(fā)布(代號(hào)Dragon Ball龍珠)滩届,這一年Vue大爆發(fā),Laravel 社區(qū)(一款流行的 PHP 框架的社區(qū))首次使用 Vue被啼,Vue在JS社區(qū)也打響了知名度帜消。

  • 2015.08.18:vue里程碑-新世紀(jì)福音戰(zhàn)士發(fā)布。vue-router(2015-08-18)浓体、vuex(2015-11-28)泡挺、vue-cli(2015-12-27)相繼發(fā)布,標(biāo)志著 Vue從一個(gè)視圖層庫發(fā)展為一個(gè)漸進(jìn)式框架命浴。

  • 2016.9.3:尤雨溪正式宣布加盟阿里巴巴Weex團(tuán)隊(duì)娄猫,尤雨溪稱他將以技術(shù)顧問的身份加入 Weex 團(tuán)隊(duì)來做 Vue 和 Weex 的 JavaScript runtime 整合,目標(biāo)是讓大家能用 Vue 的語法跨三端

  • 2016.9.30: vue版本2.0.0 (Ghost in the Shell 攻殼機(jī)動(dòng)隊(duì))發(fā)布生闲,這是第二個(gè)重要的里程碑稚新,它吸收了React的Virtual Dom方案,還支持服務(wù)端渲染跪腹。

  • 2018.9.30: 發(fā)布了 Vue 3.0 的開發(fā)路線,會(huì)保持與 2.x 的兼容并表示將從頭開始重寫 3.0

  • 2019.2.4:vue版本2.6.0 (Macross超時(shí)空要塞)發(fā)布了飞醉。新增了Scoped slots(作用域插槽)的新語法冲茸、 動(dòng)態(tài)參數(shù)指令、響應(yīng)對(duì)象等新特性缅帘。

一點(diǎn)小知識(shí)

Vue學(xué)習(xí)之前需要了解:

  • Node.js:運(yùn)行在服務(wù)端的 JavaScript轴术,是一個(gè)事件驅(qū)動(dòng)I/O服務(wù)端JavaScript環(huán)境,基于Google的V8引擎钦无,V8引擎執(zhí)行Javascript的速度非扯涸裕快,性能非常好失暂。

  • npm彼宠、cnpm : npm是nodejs的包管理器鳄虱,cnpm是淘寶 NPM 鏡像,用來加速凭峡。

  • webpack: 基于node的一個(gè)現(xiàn)代 JavaScript 應(yīng)用程序的靜態(tài)模塊打包器

  • ECMAScript 6: ECMAScript 6.0(以下簡稱ES6)是JavaScript語言的下一代標(biāo)準(zhǔn)拙已,已經(jīng)在2015年6月正式發(fā)布了。它的目標(biāo)摧冀,是使得JavaScript語言可以用來編寫復(fù)雜的大型應(yīng)用程序倍踪,成為企業(yè)級(jí)開發(fā)語言。

  • html索昂、css建车、JavaScript的基礎(chǔ)

  • vue官網(wǎng): 官方文檔

  • 看云Vue文檔: 二手文檔

  • VSCode:速度較快,對(duì)超大文件讀寫速度飛快(打開10M代碼不到1s)椒惨,插件數(shù)量相對(duì)少缤至,有一些增強(qiáng)功能比如調(diào)試器, 終端框产,原生支持語言語法高亮較少(C# JS TypeScript是第一位)凄杯,內(nèi)置JS/TS調(diào)試器…可以基于不同項(xiàng)目(文件夾)設(shè)置偏好,寫C#和JS/TS專用

  • Element-UI: 餓了么提供的UI框架秉宿。iView一個(gè)團(tuán)隊(duì)

     // 在main.js中全局引入element
      import ElementUI from 'element-ui'
      import 'element-ui/lib/theme-chalk/index.css'
      Vue.use(ElementUI)
    
  • 維護(hù)靠個(gè)人的vux: 基于webpack+vue-loader+vux可以快速開發(fā)移動(dòng)端頁面戒突,配合vux-loader方便你在WeUI的基礎(chǔ)上定制需要的樣式。滴滴的cube-ui

  • vuepress: Vue 開發(fā)主題的極簡靜態(tài)網(wǎng)站生成器描睦,另一個(gè)部分是為書寫技術(shù)文檔而優(yōu)化的默認(rèn)主題膊存。它的誕生初衷是為了支持 Vue 及其子項(xiàng)目的文檔需求。

Vue組成方式(MVVM模式以及兩個(gè)核心點(diǎn))

  • MVVM模式

    [站外圖片上傳中...(image-757b40-1591406644886)]

    https://gaoqisen.github.io/GraphBed/201908/20190811121954.png

    Model(數(shù)據(jù)層)-View(視圖層)-ViewModel(視圖和數(shù)據(jù)的鏈接層)忱叭,ViewModel層連接Model和View隔崎。View層和Model層并沒有直接聯(lián)系,而是通過ViewModel層進(jìn)行交互韵丑。ViewModel層通過雙向數(shù)據(jù)綁定將View層和Model層連接了起來爵卒,使得View層和Model層的同步工作完全是自動(dòng)的。因此開發(fā)者只需關(guān)注業(yè)務(wù)邏輯撵彻,無需手動(dòng)操作DOM钓株,復(fù)雜的數(shù)據(jù)狀態(tài)維護(hù)交給MVVM統(tǒng)一來管理
    [站外圖片上傳中...(image-d34171-1591406644886)]

  • 數(shù)據(jù)驅(qū)動(dòng)

    所謂數(shù)據(jù)驅(qū)動(dòng),是指視圖是由數(shù)據(jù)驅(qū)動(dòng)生成的陌僵,我們對(duì)視圖的修改轴合,不會(huì)直接操作 DOM,而是通過修改數(shù)據(jù)碗短。它相比我們傳統(tǒng)的前端開發(fā)受葛,如使用 jQuery 等前端庫直接修改 DOM,大大簡化了代碼量。特別是當(dāng)交互復(fù)雜的時(shí)候总滩,只關(guān)心數(shù)據(jù)的修改會(huì)讓代碼的邏輯變的非常清晰纲堵,因?yàn)?DOM 變成了數(shù)據(jù)的映射,我們所有的邏輯都是對(duì)數(shù)據(jù)的修改咳秉,而不用碰觸 DOM婉支,這樣的代碼非常利于維護(hù)。

  • 組件化

所謂組件化澜建,就是把頁面拆分成多個(gè)組件 (component)向挖,每個(gè)組件依賴的 CSS、JavaScript炕舵、模板何之、圖片等資源放在一起開發(fā)和維護(hù)。組件是資源獨(dú)立的咽筋,組件在系統(tǒng)內(nèi)部可復(fù)用溶推,組件和組件之間可以嵌套。

  • 代碼結(jié)構(gòu)

[站外圖片上傳中...(image-b893fc-1591406644886)]

  • Vue的生命周期圖(當(dāng)遇到頁面初始化的時(shí)候需要處理一下邏輯的時(shí)候奸攻,在什么時(shí)候觸發(fā)函數(shù)) 蒜危。詳細(xì)的生命周期解釋:https://segmentfault.com/a/1190000011381906

[站外圖片上傳中...(image-e9bfff-1591406644886)]

實(shí)戰(zhàn)

安裝方式

  • 在官網(wǎng)下載Node.js
node -v  // 查看node版本
npm -v  // 查看npm版本
npm install cnpm -g  // 全局安裝cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org    // 指定地址安裝cnpm
cnpm install vue  // 安裝最新穩(wěn)定版本的vue
vue --version   // 查看vue版本
cnpm install --global vue-cli  // cnpm 全局安裝vue腳手架,
npm install -g @vue/cli   // npm 全局安裝vue腳手架
vue init webpack my-project  // 創(chuàng)建一個(gè)基于 webpack 模板的新項(xiàng)目
cd my-project  // 到達(dá)項(xiàng)目根目錄
cnpm install  // 安裝依賴
cnpm run dev  // 啟動(dòng)項(xiàng)目睹耐,或者npm run dev
  • vue腳手架安裝時(shí)的選項(xiàng)

    ?   vue build 構(gòu)建方式,兩個(gè)選擇(上下箭頭選擇辐赞,回車即為選定)
        Runtime + Compiler:recommended for most users (譯:運(yùn)行+編譯:被推薦給大多數(shù)用戶)
        Runtime-only:about 6KB lighter min+gzip,but templates (or any Vue-specific HTML) are ONLY allowed in .vue files-render functions are required elsewhere(譯:只運(yùn)行大約6KB比較輕量的壓縮文件,但只允許模板(或任何VUE特定HTML)硝训。VUE文件需要在其他地方呈現(xiàn)函數(shù)响委。(意思大概是選擇該構(gòu)建方式對(duì)文件大小有要求, 這里推薦使用1選項(xiàng),適合大多數(shù)用戶的)
        Standard (https://github.com/standard/standard)  js的標(biāo)準(zhǔn)風(fēng)格
        Airbnb (https://github.com/airbnb/javascript) JavaScript最合理的方法窖梁,這個(gè)github地址說是JavaScript最合理的方法
        none (configure it yourself) 自己配置
        Setup unit tests?  是否安裝單元測試
        Setup e2e tests with Nightwatch(Y/n)?是否安裝E2E測試框架NightWatch(E2E赘风,也就是End To End,就是所謂的“用戶真實(shí)場景”纵刘。)
        yes,use npm(使用npm)
        yes,use yarn(使用yarn)
        no,I will handle that myself(自己操作)
    
  • 如果報(bào)以下的錯(cuò)誤邀窃,就安裝缺少依賴(cnpm install),全部安裝完成之后就可以通過鏈接訪問了假哎。
    [站外圖片上傳中...(image-695f08-1591406644886)]

  • 訪問http://localhost:8080出現(xiàn)vue標(biāo)識(shí)表示安裝成功

[站外圖片上傳中...(image-17d9b5-1591406644886)]

  • vue路由
    routes: [
    {
     // 路由路徑蛔翅,瀏覽器網(wǎng)址輸入欄的路徑
      path: '/',   
      // 通過name屬性,為一個(gè)頁面中不同的router-view渲染不同的組件,如:將上面代碼的Hello渲染在 name為Hello的router-view中位谋,將text渲染在name為text的router-view中。不設(shè)置name的將為默認(rèn)的渲染組件堰燎。<router-view  name="test">12345645645</router-view>
      name: 'HelloWorld',  
      // 導(dǎo)入的組件import HelloWorld from '@/components/HelloWorld'
      component:  HelloWorld
    },
    ]
    // 頁面跳轉(zhuǎn)方式
    <router-link to="/test">測試1</router-link>
    

配置文件

  • package.json
{
 "name": "ffdd-fast-vue",    // 項(xiàng)目名稱
 "version": "1.2.2",  // 版本
 "description": "...",  // 描述
 "author": "",   // 作者
 "private": true,   // 是否私有
 "scripts": {
   "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",  // npm run dev 執(zhí)行的語句
   "start": "npm run dev",  // 項(xiàng)目啟動(dòng)
   "unit": "jest --config test/unit/jest.conf.js --coverage",  // 單元測試
   "e2e": "node test/e2e/runner.js",  // 前端到后端整個(gè)過程的測試
   "test": "npm run unit && npm run e2e",  // 測試
   "lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs",  // 修改代碼樣式,  運(yùn)行之后就不報(bào)ESLint的錯(cuò)誤
   "build": "gulp"  // 構(gòu)建
 },
 "dependencies": {   // 生產(chǎn)環(huán)境所有的第三方依賴
   "axios": "0.17.1",  // 代替ajax
   "babel-plugin-component": "0.10.1",  // 按需加載插件
   "babel-polyfill": "6.26.0",  // 按需加載進(jìn)行性能優(yōu)化插件
   "element-ui": "2.8.2",   // 餓了么提供UI框架
   "gulp": "3.9.1",  // 自動(dòng)化構(gòu)建工具
   "gulp-concat": "2.6.1",  // 文件合并插件
   "gulp-load-plugins": "1.5.0",  // 自動(dòng)加載插件
   "gulp-replace": "0.6.1",  // 文件替換插件
   "gulp-shell": "0.6.5",  // 命令行插件
   "lodash": "4.17.5",  // JavaScript 實(shí)用工具庫掏父。
   "node-sass": "4.9.0",  // sass編譯成css
   "npm": "^6.9.0",
   "sass-loader": "6.0.6",  // 是webpack的一個(gè)loader, 
   "svg-sprite-loader": "3.7.3",  // 實(shí)現(xiàn)自己的Icon組件
   "vue": "2.5.2",
   "vue-cookie": "1.1.4",  // cookie插件
   "vue-router": "3.0.1",   // vue 路由
   "vuex": "3.0.1"  // vue狀態(tài)管理
 },
 "devDependencies": {  // 開發(fā)環(huán)境所有的第三方依賴
   "autoprefixer": "7.1.2",  // 自動(dòng)補(bǔ)全css前綴
   "babel-core": "6.22.1",  // 把 js 代碼分析成 ast ,方便各個(gè)插件分析語法進(jìn)行相應(yīng)的處理
   "babel-eslint": "7.1.1",  // 語法檢查
   "babel-jest": "21.0.2",  // 單元測試
   ...
 },
 "engines": {   // 引擎
   "node": ">= 8.11.1",
   "npm": ">= 5.6.0"
 },
 "browserslist": [  // 瀏覽器列表
   "> 1%",    // 全球超過1%人使用的瀏覽器
   "last 2 versions",  // 所有瀏覽器兼容到最后兩個(gè)版本根據(jù)CanIUse.com追蹤的版本
   "not ie <= 8"   // 方向排除部分版本
 ]
}
  • config/index.js

    'use strict'
     // 模版版本號(hào): 1.3.1
     // see http://vuejs-templates.github.io/webpack for documentation.
     
     const path = require('path')
     
     module.exports = {
       dev: {    // npm run dev 執(zhí)行參數(shù)
         // 路徑
         assetsSubDirectory: 'static', // 靜態(tài)文件路徑
         assetsPublicPath: '/',  
         // 代理列表
         proxyTable : {
           '/proxyApi': {
             target: 'http://localhost:8887/',  // 代理地址
             changeOrigin: true,   // 變化源
             pathRewrite: {    // 路徑重寫
               '^/proxyApi': '/'
             }
           }
         },
         // 各種開發(fā)服務(wù)器設(shè)置
         host: 'localhost', // 可以被process.env.HOST覆蓋
         port: 8080, // 可以被process.env.PORT覆蓋,如果端口正在使用秆剪,將換一個(gè)端口
         autoOpenBrowser: false,  // 自動(dòng)打開瀏覽器
         errorOverlay: true,  // 異常覆蓋
         notifyOnErrors: true,  // 異常通知
         poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
     
         // 如果為true赊淑,則在捆綁期間將對(duì)您的代碼進(jìn)行處理爵政,linting錯(cuò)誤和警告將顯示在控制臺(tái)中
         useEslint: true,
         // 如果為true, 錯(cuò)誤和警告也將顯示在錯(cuò)誤覆蓋中
         showEslintErrorsInOverlay: false,
     
         /**
          * Source Maps
          */
     
         // 開發(fā)環(huán)境工具
         devtool: 'cheap-module-eval-source-map',
     
         // 緩存破壞
         // https://vue-loader.vuejs.org/en/options.html#cachebusting
         cacheBusting: true,
         cssSourceMap: true
       },
     
       build: {  // npm run build 執(zhí)行參數(shù)
         // index.html文件路徑指定
         index: path.resolve(__dirname, '../dist/index.html'),
         // 構(gòu)建后路徑指定、資源文件夾名陶缺、公開路徑
         assetsRoot: path.resolve(__dirname, '../dist'),
         assetsSubDirectory: 'static',
         assetsPublicPath: '/',
     
         /**
          * 生產(chǎn)環(huán)境的Source Maps
          */
     
         productionSourceMap: true,
         // https://webpack.js.org/configuration/devtool/#production
         devtool: '#source-map',
     
          //默認(rèn)情況下Gzip關(guān)閉許多流行的靜態(tài)主機(jī)钾挟,例如Surge或Netlify已經(jīng)為您準(zhǔn)備了所有靜態(tài)資源。
          //在設(shè)置為“true”之前饱岸,請(qǐng)確保:npm install --save-dev compression-webpack-plugin
         productionGzip: false,
         productionGzipExtensions: ['js', 'css'],
     
         //運(yùn)行帶有額外參數(shù)的build命令
          //在構(gòu)建完成后查看捆綁分析器報(bào)告:`npm run build --report`
         bundleAnalyzerReport: process.env.npm_config_report
       }
     }
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末掺出,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子苫费,更是在濱河造成了極大的恐慌汤锨,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,002評(píng)論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件百框,死亡現(xiàn)場離奇詭異闲礼,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)铐维,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門柬泽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嫁蛇,你說我怎么就攤上這事锨并。” “怎么了棠众?”我有些...
    開封第一講書人閱讀 169,787評(píng)論 0 365
  • 文/不壞的土叔 我叫張陵琳疏,是天一觀的道長。 經(jīng)常有香客問我闸拿,道長空盼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,237評(píng)論 1 300
  • 正文 為了忘掉前任新荤,我火速辦了婚禮揽趾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘苛骨。我一直安慰自己篱瞎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,237評(píng)論 6 398
  • 文/花漫 我一把揭開白布痒芝。 她就那樣靜靜地躺著俐筋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪严衬。 梳的紋絲不亂的頭發(fā)上澄者,一...
    開封第一講書人閱讀 52,821評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼粱挡。 笑死赠幕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的询筏。 我是一名探鬼主播榕堰,決...
    沈念sama閱讀 41,236評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嫌套!你這毒婦竟也來了逆屡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,196評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤灌危,失蹤者是張志新(化名)和其女友劉穎康二,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勇蝙,經(jīng)...
    沈念sama閱讀 46,716評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沫勿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,794評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了味混。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片产雹。...
    茶點(diǎn)故事閱讀 40,928評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖翁锡,靈堂內(nèi)的尸體忽然破棺而出蔓挖,到底是詐尸還是另有隱情,我是刑警寧澤馆衔,帶...
    沈念sama閱讀 36,583評(píng)論 5 351
  • 正文 年R本政府宣布瘟判,位于F島的核電站,受9級(jí)特大地震影響角溃,放射性物質(zhì)發(fā)生泄漏拷获。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,264評(píng)論 3 336
  • 文/蒙蒙 一减细、第九天 我趴在偏房一處隱蔽的房頂上張望匆瓜。 院中可真熱鬧,春花似錦未蝌、人聲如沸驮吱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽左冬。三九已至,卻和暖如春纸型,著一層夾襖步出監(jiān)牢的瞬間又碌,已是汗流浹背九昧。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留毕匀,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,378評(píng)論 3 379
  • 正文 我出身青樓癌别,卻偏偏與公主長得像皂岔,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子展姐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,937評(píng)論 2 361