2018最新web前端VUE面試題

vue是什么?

vue是構(gòu)建數(shù)據(jù)驅(qū)動(dòng)的web界面的漸進(jìn)式框架。Vue.js 的目標(biāo)是通過盡可能簡(jiǎn)單的 API 實(shí)現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件。

vue是一種mvc和mvvm模式的開發(fā)框架,他的v-model可以實(shí)現(xiàn)數(shù)據(jù)的雙向綁定。

不用操作dom節(jié)點(diǎn)并可以用v-for進(jìn)行數(shù)據(jù)渲染。


vue的優(yōu)點(diǎn)是什么?

a.低耦合。視圖(View)可以獨(dú)立于Model變化和修改,一個(gè)ViewModel可以綁定到不同的"View"上,當(dāng)View變化的時(shí)候Model可以不變,當(dāng)Model變化的時(shí)候View也可以不變。

b.可重用性。你可以把一些視圖邏輯放在一個(gè)ViewModel里面,讓很多view重用這段視圖邏輯。

c.獨(dú)立開發(fā)。開發(fā)人員可以專注于業(yè)務(wù)邏輯和數(shù)據(jù)的開發(fā)(ViewModel),設(shè)計(jì)人員可以專注于頁(yè)面設(shè)計(jì)。

d.可測(cè)試。界面素來是比較難于測(cè)試的,而現(xiàn)在測(cè)試可以針對(duì)ViewModel來寫。


vue當(dāng)中的指令和它的用法?

v-if、v-show:判斷是否隱藏;v-for:數(shù)據(jù)循環(huán)出來;v-on:監(jiān)聽事件、@change、@click;v-bind:class:綁定一個(gè)屬性;v-model:實(shí)現(xiàn)雙向綁定。


v-if和v-show指令的共同點(diǎn)和不同點(diǎn)?

v-show指令是通過修改元素的displayCSS屬性讓其顯示或者隱藏。

v-if指令是直接銷毀和重建DOM達(dá)到讓元素顯示和隱藏的效果。


v-model是什么?怎么使用? vue中標(biāo)簽怎么綁定事件?

可以實(shí)現(xiàn)雙向綁定。

vue的model層的data屬性。綁定事件:v-bind


vue的雙向綁定的原理?

vue.js 是采用數(shù)據(jù)劫持結(jié)合發(fā)布者-訂閱者模式的方式,通過Object.defineProperty()來劫持各個(gè)屬性的setter,getter,在數(shù)據(jù)變動(dòng)時(shí)發(fā)布消息給訂閱者,觸發(fā)相應(yīng)的監(jiān)聽回調(diào)。那么vue是如果進(jìn)行數(shù)據(jù)劫持的,我們可以先來看一下通過控制臺(tái)輸出一個(gè)定義在vue初始化數(shù)據(jù)上的對(duì)象是個(gè)什么東西。

代碼:

var vm = new Vue({

? ? data: {

? ? ? ? obj: {

? ? ? ? ? ? a: 1

? ? ? ? }

? ? },

? ? created: function () {

? ? ? ? console.log(this.obj);

? ? }

});

我們可以看到屬性a有兩個(gè)相對(duì)應(yīng)的get和set方法,為什么會(huì)多出這兩個(gè)方法呢?因?yàn)関ue是通過Object.defineProperty()來實(shí)現(xiàn)數(shù)據(jù)劫持的。

Object.defineProperty( )是用來做什么的?它可以來控制一個(gè)對(duì)象屬性的一些特有操作,比如讀寫權(quán)、是否可以枚舉,這里我們主要先來研究下它對(duì)應(yīng)的兩個(gè)描述屬性get和set,如果還不熟悉其用法

在平常,我們很容易就可以打印出一個(gè)對(duì)象的屬性數(shù)據(jù):

var Book = {

? name: 'vue權(quán)威指南'

};

console.log(Book.name);? // vue權(quán)威指南

如果想要在執(zhí)行console.log(book.name)的同時(shí),直接給書名加個(gè)書名號(hào),那要怎么處理呢?或者說要通過什么監(jiān)聽對(duì)象 Book 的屬性值。這時(shí)候Object.defineProperty( )就派上用場(chǎng)了,代碼如下:

var Book = {}

var name = '';

Object.defineProperty(Book, 'name', {

? set: function (value) {

? ? name = value;

? ? console.log('你取了一個(gè)書名叫做' + value);

? },

? get: function () {

? ? return '《' + name + '》'

? }

})

Book.name = 'vue權(quán)威指南';? // 你取了一個(gè)書名叫做vue權(quán)威指南

console.log(Book.name);? // 《vue權(quán)威指南》

我們通過Object.defineProperty( )設(shè)置了對(duì)象Book的name屬性,對(duì)其get和set進(jìn)行重寫操作,顧名思義,get就是在讀取name屬性這個(gè)值觸發(fā)的函數(shù),set就是在設(shè)置name屬性這個(gè)值觸發(fā)的函數(shù),所以當(dāng)執(zhí)行?Book.name = 'vue權(quán)威指南' 這個(gè)語(yǔ)句時(shí),控制臺(tái)會(huì)打印出 "你取了一個(gè)書名叫做vue權(quán)威指南",緊接著,當(dāng)讀取這個(gè)屬性時(shí),就會(huì)輸出 "《vue權(quán)威指南》"。

實(shí)現(xiàn)過程

因此接下去我們執(zhí)行以下3個(gè)步驟,實(shí)現(xiàn)數(shù)據(jù)的雙向綁定:

1.實(shí)現(xiàn)一個(gè)監(jiān)聽器Observer,用來劫持并監(jiān)聽所有屬性,如果有變動(dòng)的,就通知訂閱者。

2.實(shí)現(xiàn)一個(gè)訂閱者Watcher,可以收到屬性的變化通知并執(zhí)行相應(yīng)的函數(shù),從而更新視圖。

3.實(shí)現(xiàn)一個(gè)解析器Compile,可以掃描和解析每個(gè)節(jié)點(diǎn)的相關(guān)指令,并根據(jù)初始化模板數(shù)據(jù)以及初始化相應(yīng)的訂閱器。


vue路由怎么使用?

1.下載安裝(用webpack新建vue項(xiàng)目時(shí),默認(rèn)選擇安裝vue-router),

2.創(chuàng)建路由文件,

3.在router文件夾里的index.js里配置路由,

4.在main.js中引入router文件夾下的router.js文件

5.在app.vue里設(shè)置錨點(diǎn) (router-link 和 router-view ,routerlink鏈接到的路由會(huì)展示在router-view里,如果沒有router-view標(biāo)簽且index.js設(shè)置路由的name屬性則頁(yè)面會(huì)直接跳轉(zhuǎn))


vue路由怎么實(shí)現(xiàn)傳值的?

當(dāng)你使用params方法傳參的時(shí)候,要在路由后面加參數(shù)名,并且傳參的時(shí)候,參數(shù)名要跟路由后面設(shè)置的參數(shù)名對(duì)應(yīng)。使用query方法,就沒有這種限制,直接在跳轉(zhuǎn)里面用就可以。


組件之間的傳值通信?

1.子組件在props中創(chuàng)建一個(gè)屬性,用來接收父組件傳過來的值;

2.在父組件中注冊(cè)子組件;

3.在子組件標(biāo)簽中添加子組件props中創(chuàng)建的屬性;

4.把需要傳給子組件的值賦給該屬性。

子組件向父組件傳值:

1.子組件中需要以某種方式(如點(diǎn)擊事件)的方法來觸發(fā)一個(gè)自定義的事件;

2.將需要傳的值作為$emit的第二個(gè)參數(shù),該值將作為實(shí)參傳給響應(yīng)事件的方法;

3.在父組件中注冊(cè)子組件并在子組件標(biāo)簽上綁定自定義事件的監(jiān)聽。


vue-router的鉤子函數(shù)

總體來講vue里面提供了三大類鉤子

1、全局鉤子

2、某個(gè)路由獨(dú)享的鉤子

3、組件內(nèi)鉤子

全局鉤子

顧名思義,全局鉤子全局用,使用如下

const router =new VueRouter({

? ? mode: 'history',

? ? base: __dirname,

? ? routes: routerConfig

})

router.beforeEach((to, from, next) => {

? ? document.title = to.meta.title || 'demo'if(!to.query.url && from.query.url) {

? ? ? ? to.query.url = from.query.url

? ? }

? ? next()

})

router.afterEach(route => {

})

某個(gè)路由獨(dú)享鉤子

就像說的一樣,給某個(gè)路由單獨(dú)使用的,本質(zhì)上和后面的組件內(nèi)鉤子是一樣的。都是特指的某個(gè)路由。不同的是,這里的一般定義在router當(dāng)中,而不是在組件內(nèi)。如下

const router =new VueRouter({

? routes: [

? ? {

? ? ? path: '/foo',

? ? ? component: Foo,

? ? ? beforeEnter: (to, from, next) => {

? ? ? ? // ...? ? ? },

? ? ? beforeLeave: (to, from, next) => {

? ? ? ? // ...? ? ? }

? ? }

? ]

})

組件內(nèi)鉤子

首先看一下官方定義:

你可以在路由組件內(nèi)直接定義以下路由導(dǎo)航鉤子

beforeRouteEnter

beforeRouteUpdate (2.2 新增)

beforeRouteLeave

路由組件!路由組件!路由組件!重要的事情說三遍,大家一定要注意這里說的是“路由組件”,而路由組件!== 組件,之前一直沒注意這點(diǎn),然后在子組件里面傻乎乎的調(diào)鉤子函數(shù)發(fā)現(xiàn)一直沒用。。。

我們先來看一下什么是路由組件?

路由組件:直接定義在router中component處的組件

也就是說router中定義的入口vue文件之外的組件,是沒有鉤子函數(shù)的,也就不用說使用了。但是如果你使用了并不會(huì)報(bào)錯(cuò),只是沒反應(yīng)。(本想畫個(gè)圖的,太懶了。。。自己理解理解吧,很好理解的)

這里再回頭看下這個(gè)路由內(nèi)鉤子是怎么用的,很簡(jiǎn)單和data、method平級(jí)的方法

beforeRouteLeave(to, from, next) {

? ? // ....? ? next()

},

beforeRouteEnter(to, from, next) {

? ? // ....? ? next()

},

beforeRouteUpdate(to, from, next) {

? ? // ....? ? next()

},

computed: {},

method: {}

三種路由鉤子中都涉及到了三個(gè)參數(shù),這里直接上官方介紹吧

to: Route: 即將要進(jìn)入的目標(biāo) 路由對(duì)象

from: Route: 當(dāng)前導(dǎo)航正要離開的路由

next: Function: 一定要調(diào)用該方法來 resolve 這個(gè)鉤子。執(zhí)行效果依賴 next 方法的調(diào)用參數(shù)。

next(): 進(jìn)行管道中的下一個(gè)鉤子。如果全部鉤子執(zhí)行完了,則導(dǎo)航的狀態(tài)就是 confirmed (確認(rèn)的)。

next(false): 中斷當(dāng)前的導(dǎo)航。如果瀏覽器的 URL 改變了(可能是用戶手動(dòng)或者瀏覽器后退按鈕),那么 URL 地址會(huì)重置到 from 路由對(duì)應(yīng)的地址。

next(‘/’) 或者 next({ path: ‘/’ }): 跳轉(zhuǎn)到一個(gè)不同的地址。當(dāng)前的導(dǎo)航被中斷,然后進(jìn)行一個(gè)新的導(dǎo)航。


axios是什么?怎么使用?

axios 是一個(gè)基于 Promise 的,為瀏覽器和 Node.js 設(shè)計(jì)的 HTTP 客戶端。它盡可能簡(jiǎn)化封裝了 HTTP 相關(guān)的各種操作,在 Web App 中使用非常方便。

Vue 2 官方建議在由 Vue 構(gòu)建的 SPA 中使用 axios 進(jìn)行 HTTP 操作。

axios 用于請(qǐng)求后臺(tái)資源的模塊。npm install axios -S裝好,

然后發(fā)送的是跨域,需在配置文件中config/index.js進(jìn)行設(shè)置。

后臺(tái)如果是Tp5則定義一個(gè)資源路由。js中使用import進(jìn)來,

然后.get或.post。返回在.then函數(shù)中如果成功,

失敗則是在.catch函數(shù)中。


vuex

vuex是一個(gè)專門為vue.js設(shè)計(jì)的集中式狀態(tài)管理架構(gòu)。我把它理解為在data中的屬性需要共享給其他vue組件使用的部分,就叫做狀態(tài)。簡(jiǎn)單的說就是data中需要共用的屬性。如果沒有vuex 請(qǐng)求到的數(shù)據(jù)在頁(yè)面刷新后就必須再請(qǐng)求一次,但是有了vuex就可以把這些數(shù)據(jù)當(dāng)做狀態(tài)保存到vuex中,在中大型項(xiàng)目中有很多共用的數(shù)據(jù),就可以用vuex。比如單頁(yè)應(yīng)用中,組件之間的狀態(tài)。音樂播放、登錄狀態(tài)、加入購(gòu)物車就可以使用。


vuex有哪幾種屬性?

有五種,分別是 state(訪問狀態(tài)對(duì)象)、getter(計(jì)算過濾操作)、mutation(修改狀態(tài))、action(異步修改狀態(tài))、 module(模塊組)


vuejs與angularjs的區(qū)別?

相同點(diǎn):

都支持指令:內(nèi)置指令和自定義指令。

都支持過濾器:內(nèi)置過濾器和自定義過濾器。

都支持雙向數(shù)據(jù)綁定。

都不支持低端瀏覽器。

不同點(diǎn):

1.AngularJS的學(xué)習(xí)成本高,比如增加了Dependency Injection特性,而Vue.js本身提供的API都比較簡(jiǎn)單、直觀。

2.在性能上,AngularJS依賴對(duì)數(shù)據(jù)做臟檢查,所以Watcher越多越慢。

Vue.js使用基于依賴追蹤的觀察并且使用異步隊(duì)列更新。所有的數(shù)據(jù)都是獨(dú)立觸發(fā)的。

對(duì)于龐大的應(yīng)用來說,這個(gè)優(yōu)化差異還是比較明顯的。


vue不操作DOM節(jié)點(diǎn)查找元素

一般來講,獲取DOM元素,需document.querySelector(".input1")獲取這個(gè)dom節(jié)點(diǎn),然后在獲取input1的值。

但是用ref綁定之后,我們就不需要在獲取dom節(jié)點(diǎn)了,直接在上面的input上綁定input1,然后$refs里面調(diào)用就行。

然后在javascript里面這樣調(diào)用:this.$refs.input1? 這樣就可以減少獲取dom節(jié)點(diǎn)的消耗了


active-class是哪個(gè)組件的屬性?

vue-router模塊的router-link組件


嵌套路由怎么定義?

我們需要在 VueRouter 的參數(shù)中使用 children 配置,這樣就可以很好的實(shí)現(xiàn)路由嵌套。

import Vue from 'vue'

import VueRouter from 'vue-router'?

Vue.use(VueRouter)?

//引入兩個(gè)組件

import home from "./home.vue"?

import game from "./game.vue"?

//定義路由?

const routes = [?

? ? { path: "/", redirect: "/home" },//重定向,指向了home組件?

? ? {?

? ? ? ? path: "/home", component: home,?

? ? ? ? children: [?

? ? ? ? ? ? { path: "/home/game", component: game }?

? ? ? ? ]?

? ? }?

]?

//創(chuàng)建路由實(shí)例?

const router = new VueRouter({routes})?

new Vue({?

? ? el: '#app',?

? ? data: {?

? ? },?

? ? methods: {?

? ? },?

? ? router?

})


怎么定義vue-router的動(dòng)態(tài)路由?怎么獲取傳過來的動(dòng)態(tài)參數(shù)?

在router目錄下的index.js文件中,對(duì)path屬性加上/:id。

使用router對(duì)象的params.id。


scss是什么?在vue.cli中的安裝使用步驟是?有哪幾大特性?

css的預(yù)編譯。

使用步驟:

第一步:用npm 下三個(gè)loader(sass-loader、css-loader、node-sass)

第二步:在build目錄找到webpack.base.config.js,在那個(gè)extends屬性中加一個(gè)拓展.scss

第三步:還是在同一個(gè)文件,配置一個(gè)module屬性

第四步:然后在組件的style標(biāo)簽加上lang屬性 ,例如:lang=”scss”

有哪幾大特性:

1、可以用變量,例如($變量名稱=值);

2、可以用混合器,例如()

3、可以嵌套


mint-ui是什么?怎么使用?說出至少三個(gè)組件使用方法?

基于vue的前端組件庫(kù)。npm安裝,然后import樣式和js,vue.use(mintUi)全局引入。在單個(gè)組件局部引入:import {Toast} from ‘mint-ui’。

組件一:Toast(‘登錄成功’);

組件二:mint-header;

組件三:mint-swiper


mvvm框架是什么?它和其它框架(jquery)的區(qū)別是什么?哪些場(chǎng)景適合?

一個(gè)model+view+viewModel框架,數(shù)據(jù)模型model,viewModel連接兩個(gè)

區(qū)別:vue數(shù)據(jù)驅(qū)動(dòng),通過數(shù)據(jù)來顯示視圖層而不是節(jié)點(diǎn)操作。

場(chǎng)景:數(shù)據(jù)操作比較多的場(chǎng)景,更加便捷


自定義指令(v-check、v-focus)的方法有哪些?它有哪些鉤子函數(shù)?還有哪些鉤子函數(shù)參數(shù)?

全局定義指令:在vue對(duì)象的directive方法里面有兩個(gè)參數(shù),一個(gè)是指令名稱,另外一個(gè)是函數(shù)。組件內(nèi)定義指令:directives

鉤子函數(shù):bind(綁定事件觸發(fā))、inserted(節(jié)點(diǎn)插入的時(shí)候觸發(fā))、update(組件內(nèi)相關(guān)更新)

鉤子函數(shù)參數(shù):el、binding


你是怎么認(rèn)識(shí)vuex的?

vuex可以理解為一種開發(fā)模式或框架。比如PHP有thinkphp,java有spring等。

通過狀態(tài)(數(shù)據(jù)源)集中管理驅(qū)動(dòng)組件的變化(好比spring的IOC容器對(duì)bean進(jìn)行集中管理)。

應(yīng)用級(jí)的狀態(tài)集中放在store中; 改變狀態(tài)的方式是提交mutations,這是個(gè)同步的事物; 異步邏輯應(yīng)該封裝在action中。


vue.cli中怎樣使用自定義的組件?有遇到過哪些問題嗎?

第一步:在components目錄新建你的組件文件(swithButton.vue),script一定要export default {

第二步:在需要用的頁(yè)面(組件)中導(dǎo)入:import swithButtonfrom ‘../components/swithButton.vue’

第三步:注入到vue的子組件的components屬性上面,components:{swithButton}

第四步:在template視圖view中使用,

問題有:swithButton命名,使用的時(shí)候則swith-button。


聊聊你對(duì)Vue.js的template編譯的理解?

簡(jiǎn)而言之,就是先轉(zhuǎn)化成AST樹,再得到的render函數(shù)返回VNode(Vue的虛擬DOM節(jié)點(diǎn))

詳情步驟:

首先,通過compile編譯器把template編譯成AST語(yǔ)法樹,compile是createCompiler的返回值,createCompiler是用以創(chuàng)建編譯器的。另外compile還負(fù)責(zé)合并option。

然后,AST會(huì)經(jīng)過generate(將AST語(yǔ)法樹轉(zhuǎn)化成render funtion字符串的過程)得到render函數(shù),render的返回值是VNode,VNode是Vue的虛擬DOM節(jié)點(diǎn),里面有(標(biāo)簽名、子節(jié)點(diǎn)、文本等等)


vuejs與angularjs以及react的區(qū)別?

1.與AngularJS的區(qū)別

相同點(diǎn):

都支持指令:內(nèi)置指令和自定義指令。

都支持過濾器:內(nèi)置過濾器和自定義過濾器。

都支持雙向數(shù)據(jù)綁定。

都不支持低端瀏覽器。

不同點(diǎn):

1.AngularJS的學(xué)習(xí)成本高,比如增加了Dependency Injection特性,而Vue.js本身提供的API都比較簡(jiǎn)單、直觀。

2.在性能上,AngularJS依賴對(duì)數(shù)據(jù)做臟檢查,所以Watcher越多越慢。

Vue.js使用基于依賴追蹤的觀察并且使用異步隊(duì)列更新。所有的數(shù)據(jù)都是獨(dú)立觸發(fā)的。

對(duì)于龐大的應(yīng)用來說,這個(gè)優(yōu)化差異還是比較明顯的。

2.與React的區(qū)別

相同點(diǎn):

React采用特殊的JSX語(yǔ)法,Vue.js在組件開發(fā)中也推崇編寫.vue特殊文件格式,對(duì)文件內(nèi)容都有一些約定,兩者都需要編譯后使用。

中心思想相同:一切都是組件,組件實(shí)例之間可以嵌套。

都提供合理的鉤子函數(shù),可以讓開發(fā)者定制化地去處理需求。

都不內(nèi)置列數(shù)AJAX,Route等功能到核心包,而是以插件的方式加載。

在組件開發(fā)中都支持mixins的特性。

不同點(diǎn):

React依賴Virtual DOM,而Vue.js使用的是DOM模板。React采用的Virtual DOM會(huì)對(duì)渲染出來的結(jié)果做臟檢查。

Vue.js在模板中提供了指令,過濾器等,可以非常方便,快捷地操作DOM。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,923評(píng)論 6 535
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,740評(píng)論 3 420
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,856評(píng)論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,175評(píng)論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,931評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,321評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,383評(píng)論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,533評(píng)論 0 289
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,082評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,891評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,067評(píng)論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,618評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,319評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,732評(píng)論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,987評(píng)論 1 289
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,794評(píng)論 3 394
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,076評(píng)論 2 375