React結合antd實現(xiàn)表格的增刪改查

前言

初次接觸react,通過學習react官方文檔嗓蘑、學習B站上“張sir手摸手帶你學前端”這位老師的視頻须肆,采用 React + Antd + JavaScript + axios ,終于完成了簡單Table的增刪改查功能

新建一個 CRUDDemo.js 的文件桩皿,插入完成代碼豌汇,在 App.js 中引入 CRUDDemo.js,并下載好 axios泄隔、antd 等需要用到的庫拒贱,然后就可以啟動項目啦

importTablefrom'./CRUDDemo';


1. 使用axios讀取數(shù)據(jù)

```javascript

//讀取數(shù)據(jù)——get

readData() {

? ? ? ? axios.get('http://....你的url')

? ? ? ? ? ? .then(res => {

? ? ? ? ? ? ? ? // console.log('調(diào)用成功')

? ? ? ? ? ? ? ? this.setState({

? ? ? ? ? ? ? ? ? ? data: res.data,

? ? ? ? ? ? ? ? })

? ? ? ? ? ? ? ? res.data.forEach((r, i) => {

? ? ? ? ? ? ? ? ? ? r.key = i;

? ? ? ? ? ? ? ? });

? ? ? ? ? ? }).catch(error => {

? ? ? ? ? ? ? ? console.log(error)

? ? ? ? ? ? })

? ? }

```


2. 新增數(shù)據(jù)

```javascript

//實現(xiàn)新增數(shù)據(jù)——post

postData = () => {

? ? ? ? axios.post('http://....你的url', {

? ? ? ? ? ? name: this.state.name,

? ? ? ? ? ? age: this.state.age,

? ? ? ? ? ? sex: this.state.sex,

? ? ? ? ? ? address: this.state.address,

? ? ? ? ? ? phone: this.state.phone

? ? ? ? }).then(res => {

? ? ? ? ? ? message.success('添加成功');

? ? ? ? ? ? // console.log('添加成功')

? ? ? ? ? ? this.readData()

? ? ? ? ? ? this.setState({

? ? ? ? ? ? ? ? visible: false

? ? ? ? ? ? });

? ? ? ? }).catch(error => {

? ? ? ? ? ? message.error("按照格式要求輸入")

? ? ? ? });

? ? ? ? this.formRef.current.resetFields() //新增成功后清空輸入框中的數(shù)據(jù),避免下次點擊新增時出現(xiàn)上次輸入的數(shù)據(jù)

? ? }

```


3. 刪除數(shù)據(jù)

```javascript

//實現(xiàn)刪除數(shù)據(jù)——delete

deleteData = (id) => {

//id前面的 / 不能省略佛嬉,這里使用反引號

? ? ? ? axios.delete(`http://...你的url/${id}`)

? ? ? ? ? ? .then(res => {

? ? ? ? ? ? ? ? message.success('刪除成功');

? ? ? ? ? ? ? ? // console.log('刪除成功')

? ? ? ? ? ? ? ? this.readData()

? ? ? ? ? ? })

? ? };

```


4. 修改數(shù)據(jù)

```javascript

//實現(xiàn)修改數(shù)據(jù)——put或patch

? ? updateData = () => {

? ? //rowid前面的 / 不能省略逻澳,這里使用反引號

? ? axios.patch(`http:....你的url/${this.state.rowid}`, {

? ? ? ? ? ? name: this.state.name,

? ? ? ? ? ? age: this.state.age,

? ? ? ? ? ? sex: this.state.sex,

? ? ? ? ? ? address: this.state.address,

? ? ? ? ? ? phone: this.state.phone

? ? ? ? }).then(res => {

? ? ? ? ? ? message.success('修改成功');

? ? ? ? ? ? // console.log('修改成功')

? ? ? ? ? ? this.readData()

? ? ? ? ? ? this.setState({

? ? ? ? ? ? ? ? visible1: false

? ? ? ? ? ? });

? ? ? ? }).catch(error => {

? ? ? ? ? ? message.error("按照格式要求輸入")

? ? ? ? })

? ? ? ? this.formRef1.current.resetFields() //修改成功后清空輸入框中的數(shù)據(jù)

? ? }

```


5. 查詢數(shù)據(jù)

```javascript

//實現(xiàn)按照姓名查詢數(shù)據(jù)

? ? queryfn = (e) => {

? ? ? ? let keyword = e.target.value

? ? ? ? clearTimeout(window.timer)? //防抖查詢

? ? ? ? window.timer = setTimeout(() => {

? ? ? ? ? ? let data = this.state.data.filter(r => r.name === keyword)

? ? ? ? ? ? if (data.length !== 0) {

? ? ? ? ? ? ? ? this.setState({

? ? ? ? ? ? ? ? ? ? data

? ? ? ? ? ? ? ? })

? ? ? ? ? ? }

? ? ? ? }, 500)

? ? }

```


完整代碼

```javascript

import './App.css';

import React, { Component } from 'react';

import { Space, Table, Popconfirm, Button, Input, Divider, Form, Drawer, message } from 'antd';

import axios from 'axios';

class CRUDDemo extends Component {

? ? formRef = React.createRef() //清空輸入框內(nèi)容

? ? formRef1 = React.createRef()

? ? constructor(props) {

? ? ? ? super(props);

? ? ? ? this.state = {

? ? ? ? ? ? visible: false,

? ? ? ? ? ? visible1: false,

? ? ? ? ? ? rowid: null,

? ? ? ? ? ? columns: [

? ? ? ? ? ? ? ? { title: '姓名', dataIndex: 'name', key: 'name', },

? ? ? ? ? ? ? ? { title: '性別', dataIndex: 'sex', key: 'sex', },

? ? ? ? ? ? ? ? { title: '年齡', dataIndex: 'age', key: 'age', },

? ? ? ? ? ? ? ? { title: '家庭住址', dataIndex: 'address', key: 'address', },

? ? ? ? ? ? ? ? { title: '聯(lián)系電話', dataIndex: 'phone', key: 'phone' },

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? title: '操作',

? ? ? ? ? ? ? ? ? ? key: 'action',

? ? ? ? ? ? ? ? ? ? render: (_, record) => (

? ? ? ? ? ? ? ? ? ? ? ? <Space size="middle">

? ? ? ? ? ? ? ? ? ? ? ? ? ? <a className="action-link" onClick={this.showDrawer1.bind(this, record)}>修改</a>

? ? ? ? ? ? ? ? ? ? ? ? ? ? <Popconfirm title="確定要刪除嗎?" onConfirm={this.deleteData.bind(this, record.id)} onCancel={this.onClose.bind(this)} okText="確定" cancelText="取消" >

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <a className="action-link" style={{ color: record.obsoleted ? '#1890ff' : '#fa8c16' }} >刪除</a>

? ? ? ? ? ? ? ? ? ? ? ? ? ? </Popconfirm>

? ? ? ? ? ? ? ? ? ? ? ? </Space>

? ? ? ? ? ? ? ? ? ? ),

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ],

? ? ? ? ? ? data: [], //儲存axios獲取到的數(shù)據(jù)

? ? ? ? }

? ? }


? ? //關閉新增信息對話框

? ? onClose = () => {

? ? ? ? this.setState({

? ? ? ? ? ? visible: false

? ? ? ? });

? ? ? ? message.error('取消操作');

? ? };

? ? //關閉修改信息對話框

? ? onClose1 = () => {

? ? ? ? this.setState({

? ? ? ? ? ? visible1: false

? ? ? ? });

? ? ? ? message.error('取消操作');

? ? };

? ? //顯示新增信息抽屜

? ? showDrawer = () => {

? ? ? ? this.setState({

? ? ? ? ? ? visible: true

? ? ? ? });

? ? };

? ? //顯示修改信息抽屜

? ? showDrawer1 = (r) => {

? ? ? ? this.setState({

? ? ? ? ? ? visible1: true,

? ? ? ? ? ? rowid: r.id,? ? ? ?

? ? ? ? })

? ? ? ? setTimeout(() => {this.formRef1.current.setFieldsValue(r) }, 0);}; //設置 0 毫秒延遲回顯數(shù)據(jù)


? ? //將數(shù)據(jù)顯示在初始頁面

? ? componentDidMount() {

? ? ? ? this.readData()

? ? }


? ? //實現(xiàn)讀取數(shù)據(jù)——————get

? ? readData() {

? ? ? ? axios.get('http://....你的url')

? ? ? ? ? ? .then(res => {

? ? ? ? ? ? ? ? // console.log('調(diào)用成功')

? ? ? ? ? ? ? ? this.setState({

? ? ? ? ? ? ? ? ? ? data: res.data,

? ? ? ? ? ? ? ? })

? ? ? ? ? ? ? ? res.data.forEach((r, i) => {

? ? ? ? ? ? ? ? ? ? r.key = i;

? ? ? ? ? ? ? ? });

? ? ? ? ? ? }).catch(error => {

? ? ? ? ? ? ? ? console.log(error)

? ? ? ? ? ? })

? ? }


? ? //新增信息時的Input輸入框事件

? ? handleChange = (e) => {

? ? ? ? this.setState({

? ? ? ? ? ? [e.target.id]: e.target.value

? ? ? ? })

? ? }

? ? //修改信息時的Input輸入框事件

? ? handleChange1 = (e) => {

? ? ? ? this.setState({

? ? ? ? ? ? [e.target.id]: e.target.value

? ? ? ? })

? ? }


? ? //新增數(shù)據(jù)——————post

? ? //新增、修改數(shù)據(jù)時提交失敗時的提示信息

? ? onFinishFailed = (errorInfo) => {

? ? ? ? console.log('Failed:', errorInfo);

? ? ? ? message.error("按照格式要求輸入")

? ? };


? ? postData = () => {

? ? ? ? axios.post("http://....你的url", {

? ? ? ? ? ? name: this.state.name,

? ? ? ? ? ? age: this.state.age,

? ? ? ? ? ? sex: this.state.sex,

? ? ? ? ? ? address: this.state.address,

? ? ? ? ? ? phone: this.state.phone

? ? ? ? }).then(res => {

? ? ? ? ? ? message.success('添加成功');

? ? ? ? ? ? // console.log('添加成功')

? ? ? ? ? ? this.readData()

? ? ? ? ? ? this.setState({

? ? ? ? ? ? ? ? visible: false

? ? ? ? ? ? });

? ? ? ? }).catch(error => {

? ? ? ? ? ? message.error("按照格式要求輸入")

? ? ? ? });

? ? ? ? this.formRef.current.resetFields() //新增成功后清空輸入框中的數(shù)據(jù)暖呕,避免下次點擊新增時出現(xiàn)上次輸入的數(shù)據(jù)

? ? }


? ? // // 實現(xiàn)刪除————————delete

? ? deleteData = (id) => {

? ? ? ? axios.delete(`http://....你的url/${id}`) //id前面的 / 不能省略

? ? ? ? ? ? .then(res => {

? ? ? ? ? ? ? ? message.success('刪除成功');

? ? ? ? ? ? ? ? // console.log('刪除成功')

? ? ? ? ? ? ? ? this.readData()

? ? ? ? ? ? })

? ? };


? ? //實現(xiàn)按照姓名查詢數(shù)據(jù)

? ? queryfn = (e) => {

? ? ? ? let keyword = e.target.value

? ? ? ? clearTimeout(window.timer)? //防抖查詢

? ? ? ? window.timer = setTimeout(() => {

? ? ? ? ? ? let data = this.state.data.filter(r => r.name === keyword)

? ? ? ? ? ? if (data.length !== 0) {

? ? ? ? ? ? ? ? this.setState({

? ? ? ? ? ? ? ? ? ? data

? ? ? ? ? ? ? ? })

? ? ? ? ? ? }

? ? ? ? }, 500)

? ? }


? ? //實現(xiàn)修改數(shù)據(jù)——put或patch

? ? updateData = () => {

? ? ? ? axios.patch(`http://....你的url/${this.state.rowid}`, {

? ? ? ? ? ? name: this.state.name,

? ? ? ? ? ? age: this.state.age,

? ? ? ? ? ? sex: this.state.sex,

? ? ? ? ? ? address: this.state.address,

? ? ? ? ? ? phone: this.state.phone

? ? ? ? }).then(res => {

? ? ? ? ? ? message.success('修改成功');

? ? ? ? ? ? // console.log('修改成功')

? ? ? ? ? ? this.readData()

? ? ? ? ? ? this.setState({

? ? ? ? ? ? ? ? visible1: false

? ? ? ? ? ? });

? ? ? ? }).catch(error => {

? ? ? ? ? ? message.error("按照格式要求輸入")

? ? ? ? })

? ? ? ? this.formRef1.current.resetFields() //修改成功后清空輸入框中的數(shù)據(jù)

? ? }


? ? render() {

? ? ? ? let data = this.state.data;

? ? ? ? let columns = this.state.columns;

? ? ? ? let { name, age, sex, address, phone } = this.state;

? ? ? ? return (

? ? ? ? ? ? <div className="App">

? ? ? ? ? ? ? ? <Button type="primary" onClick={this.showDrawer.bind(this)} >添加信息 </Button>

? ? ? ? ? ? ? ? <Input placeholder="請根據(jù)姓名查找信息" style={{ marginLeft: '10px', width: '20%' }} onInput={this.queryfn} />

? ? ? ? ? ? ? ? <Divider plain>人員信息表格</Divider>

? ? ? ? ? ? ? ? <Table columns={columns} dataSource={data} >? </Table>

? ? ? ? ? ? ? ? <Drawer title="添加個人信息" onClose={this.onClose} visible={this.state.visible}>

? ? ? ? ? ? ? ? ? ? <Form ref={this.formRef} onFinish={this.postData} onFinishFailed={this.onFinishFailed} autoComplete="off" >

? ? ? ? ? ? ? ? ? ? ? ? <Form.Item

? ? ? ? ? ? ? ? ? ? ? ? ? ? name="name"

? ? ? ? ? ? ? ? ? ? ? ? ? ? label="姓名"

? ? ? ? ? ? ? ? ? ? ? ? ? ? rules={[{ required: true, message: '請輸入您的姓名', }, ] } >

? ? ? ? ? ? ? ? ? ? ? ? ? ? <Input placeholder="請輸入您的姓名" id="name" value={name} onChange={this.handleChange} pattern="[\u4e00-\u9fa5]{2,6}$" title='輸入2-6位中文漢字'/>

? ? ? ? ? ? ? ? ? ? ? ? </Form.Item>

? ? ? ? ? ? ? ? ? ? ? ? <Form.Item

? ? ? ? ? ? ? ? ? ? ? ? ? ? name="sex"

? ? ? ? ? ? ? ? ? ? ? ? ? ? label="性別"

? ? ? ? ? ? ? ? ? ? ? ? ? ? rules={[{ required: true, message: '請輸入您的性別', },]}? >

? ? ? ? ? ? ? ? ? ? ? ? ? ? <Input placeholder="請輸入您的性別" id="sex" value={sex} onChange={this.handleChange} pattern="^[男|女]{1}$" title='輸入男或女' />

? ? ? ? ? ? ? ? ? ? ? ? </Form.Item>

? ? ? ? ? ? ? ? ? ? ? ? <Form.Item

? ? ? ? ? ? ? ? ? ? ? ? ? ? name="age"

? ? ? ? ? ? ? ? ? ? ? ? ? ? label="年齡"

? ? ? ? ? ? ? ? ? ? ? ? ? ? rules={[{ required: true, message: '請輸入您的年齡', },]} >

? ? ? ? ? ? ? ? ? ? ? ? ? ? <Input placeholder="請輸入您的年齡" id="age" value={age} onChange={this.handleChange} pattern="^(?:[1-9][0-9]?|1[01][0-9]|120)$" title='輸入1-120之間的數(shù)字'/>

? ? ? ? ? ? ? ? ? ? ? ? </Form.Item>

? ? ? ? ? ? ? ? ? ? ? ? <Form.Item

? ? ? ? ? ? ? ? ? ? ? ? ? ? name="address"

? ? ? ? ? ? ? ? ? ? ? ? ? ? label="家庭住址"

? ? ? ? ? ? ? ? ? ? ? ? ? ? rules={[{ required: true, message: '請輸入您的家庭住址', },]} >

? ? ? ? ? ? ? ? ? ? ? ? ? ? <Input placeholder="請輸入您的家庭住址" id="address" value={address} onChange={this.handleChange} pattern="[\u4e00-\u9fa5]{1,100}$" title='輸入有效中文漢字'/>

? ? ? ? ? ? ? ? ? ? ? ? </Form.Item>

? ? ? ? ? ? ? ? ? ? ? ? <Form.Item

? ? ? ? ? ? ? ? ? ? ? ? ? ? name="phone"

? ? ? ? ? ? ? ? ? ? ? ? ? ? label="聯(lián)系電話"

? ? ? ? ? ? ? ? ? ? ? ? ? ? rules={[{ required: true, message: '請輸入您的聯(lián)系電話', },]} >

? ? ? ? ? ? ? ? ? ? ? ? ? ? <Input placeholder="請輸入11位聯(lián)系電話" id="phone" value={phone} onChange={this.handleChange} pattern="^1[0-9]{10}$" title='輸入1開頭的11位有效手機號'/>

? ? ? ? ? ? ? ? ? ? ? ? </Form.Item>

? ? ? ? ? ? ? ? ? ? ? ? <Button onClick={this.onClose.bind(this)}>取消</Button>

? ? ? ? ? ? ? ? ? ? ? ? <Button? htmlType="submit" type="primary">完成 </Button>

? ? ? ? ? ? ? ? ? ? </Form>

? ? ? ? ? ? ? ? </Drawer>

? ? ? ? ? ? ? ? <Drawer title="修改個人信息" onClose={this.onClose1} visible={this.state.visible1}>

? ? ? ? ? ? ? ? ? ? <Form ref={this.formRef1} onFinish={this.updateData} onFinishFailed={this.onFinishFailed} autoComplete="off" >

? ? ? ? ? ? ? ? ? ? ? ? <Form.Item

? ? ? ? ? ? ? ? ? ? ? ? ? ? name="name"

? ? ? ? ? ? ? ? ? ? ? ? ? ? label="姓名"

? ? ? ? ? ? ? ? ? ? ? ? ? ? rules={[{ required: true, message: '請輸入您的姓名', },]}? ? >

? ? ? ? ? ? ? ? ? ? ? ? ? ? <Input placeholder="請輸入您的姓名" id="name" value={name} onChange={this.handleChange1} pattern="[\u4e00-\u9fa5]{2,6}$" title='輸入2-6位中文漢字'/>

? ? ? ? ? ? ? ? ? ? ? ? </Form.Item>

? ? ? ? ? ? ? ? ? ? ? ? <Form.Item

? ? ? ? ? ? ? ? ? ? ? ? ? ? name="sex"

? ? ? ? ? ? ? ? ? ? ? ? ? ? label="性別"

? ? ? ? ? ? ? ? ? ? ? ? ? ? rules={[{ required: true, message: '請輸入您的性別', },]}? >

? ? ? ? ? ? ? ? ? ? ? ? ? ? <Input placeholder="請輸入您的性別" id="sex" value={sex} onChange={this.handleChange1} pattern="^[男|女]{1}$" title='輸入男或女'/>

? ? ? ? ? ? ? ? ? ? ? ? </Form.Item>

? ? ? ? ? ? ? ? ? ? ? ? <Form.Item

? ? ? ? ? ? ? ? ? ? ? ? ? ? name="age"

? ? ? ? ? ? ? ? ? ? ? ? ? ? label="年齡"

? ? ? ? ? ? ? ? ? ? ? ? ? ? rules={[{ required: true, message: '請輸入您的年齡', },]} >

? ? ? ? ? ? ? ? ? ? ? ? ? ? <Input placeholder="請輸入您的年齡" id="age" value={age} onChange={this.handleChange1} pattern="^(?:[1-9][0-9]?|1[01][0-9]|120)$" title='輸入1-120之間的數(shù)字'/>

? ? ? ? ? ? ? ? ? ? ? ? </Form.Item>

? ? ? ? ? ? ? ? ? ? ? ? <Form.Item

? ? ? ? ? ? ? ? ? ? ? ? ? ? name="address"

? ? ? ? ? ? ? ? ? ? ? ? ? ? label="家庭住址"

? ? ? ? ? ? ? ? ? ? ? ? ? ? rules={[{ required: true, message: '請輸入您的家庭住址', },]}? >

? ? ? ? ? ? ? ? ? ? ? ? ? ? <Input placeholder="請輸入您的家庭住址" id="address"? onChange={this.handleChange1} pattern="[\u4e00-\u9fa5]{1,100}$" title='輸入有效中文漢字'/>

? ? ? ? ? ? ? ? ? ? ? ? </Form.Item>

? ? ? ? ? ? ? ? ? ? ? ? <Form.Item

? ? ? ? ? ? ? ? ? ? ? ? ? ? name="phone"

? ? ? ? ? ? ? ? ? ? ? ? ? ? label="聯(lián)系電話"

? ? ? ? ? ? ? ? ? ? ? ? ? ? rules={[{ required: true, message: '請輸入您的聯(lián)系電話', },]} >

? ? ? ? ? ? ? ? ? ? ? ? ? ? <Input placeholder="請輸入11位聯(lián)系電話" id="phone" value={phone} onChange={this.handleChange1}? pattern="^1[0-9]{10}$" title='輸入1開頭的11位有效手機號'/>

? ? ? ? ? ? ? ? ? ? ? ? </Form.Item>

? ? ? ? ? ? ? ? ? ? ? ? <Button onClick={this.onClose1.bind(this)}>取消</Button>

? ? ? ? ? ? ? ? ? ? ? ? <Button? htmlType="submit" type="primary">完成 </Button>

? ? ? ? ? ? ? ? ? ? </Form>

? ? ? ? ? ? ? ? </Drawer>

? ? ? ? ? ? </div>

? ? ? ? );

? ? }

}

export default CRUDDemo;

```


效果圖示

完整頁面

新增信息

修改信息

刪除信息

查詢信息

本文為原創(chuàng)斜做,轉(zhuǎn)載請注明出處

參考資料

我的CSDN博客地址【React+antd】React結合antd實現(xiàn)表格的增刪改查_qq_46105844的博客-CSDN博客

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者湾揽。
  • 序言:七十年代末瓤逼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子库物,更是在濱河造成了極大的恐慌霸旗,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件戚揭,死亡現(xiàn)場離奇詭異诱告,居然都是意外死亡,警方通過查閱死者的電腦和手機毫目,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門蔬啡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诲侮,“玉大人,你說我怎么就攤上這事箱蟆」敌鳎” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵空猜,是天一觀的道長绽慈。 經(jīng)常有香客問我,道長辈毯,這世上最難降的妖魔是什么坝疼? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮谆沃,結果婚禮上钝凶,老公的妹妹穿的比我還像新娘。我一直安慰自己唁影,他們只是感情好耕陷,可當我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著据沈,像睡著了一般哟沫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锌介,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天嗜诀,我揣著相機與錄音,去河邊找鬼孔祸。 笑死隆敢,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的融击。 我是一名探鬼主播筑公,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼雳窟,長吁一口氣:“原來是場噩夢啊……” “哼尊浪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起封救,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤拇涤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后誉结,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鹅士,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年惩坑,在試婚紗的時候發(fā)現(xiàn)自己被綠了掉盅。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片也拜。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖趾痘,靈堂內(nèi)的尸體忽然破棺而出慢哈,到底是詐尸還是另有隱情,我是刑警寧澤永票,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布卵贱,位于F島的核電站,受9級特大地震影響侣集,放射性物質(zhì)發(fā)生泄漏键俱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一世分、第九天 我趴在偏房一處隱蔽的房頂上張望编振。 院中可真熱鬧,春花似錦臭埋、人聲如沸党觅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杯瞻。三九已至,卻和暖如春炫掐,著一層夾襖步出監(jiān)牢的瞬間魁莉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工募胃, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留旗唁,地道東北人。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓痹束,卻偏偏與公主長得像检疫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子祷嘶,可洞房花燭夜當晚...
    茶點故事閱讀 45,107評論 2 356

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