微信小程序

tabber配置

  "tabBar": {
    "color": "#a9b7b7",
    "selectedColor": "#11cd6e",
    "borderStyle": "black" ,
    "list": [
        {
        "selectedIconPath": "icon/home-o.png",
        "iconPath": "icon/home.png",
        "pagePath": "pages/index/index",
        "text": "首頁"
      },
      {
        "selectedIconPath": "icon/category-o.png",
        "iconPath": "icon/category.png",
        "pagePath": "pages/category/category",
        "text": "一元投"
      }
    ]
  },

運算

運算符 => 表達式
1.可以在花括號里面加入表達式語句
2.表達式
指的是一些簡單的 數(shù)組運算 字符串拼接 邏輯運算
1. 數(shù)字的加減
2. 字符串拼接
3. 三元表達式

<view>{{ 1 + 1}}</view>
<view>{{ 1 + '2'}}</view>
<view>{{ 10 % 2 === 0 ? '偶數(shù)' : '基數(shù)'}}</view>
<view>{{ false || 1 }}</view>
<view>{{ true || 1 }}</view>
<view>{{ true && 1 }}</view>

循環(huán)

<!-- wx:for循環(huán) -->
<!-- 
  1.wx:for='{{數(shù)組或者對象}}' wx:for-item="循環(huán)的名稱" wx:for-index="循環(huán)的索引"
  2.wx:key="唯一的值" 用來提高性能
    1. wx:key 綁定一個普通的字符串的時候 那么這個字符串名稱 肯定是數(shù)組中的對象的唯一屬性
    2. wx:key = "*this" 這種表示循環(huán)一個數(shù)組的時候用這個
  3. 當出現(xiàn)循環(huán)嵌套時候 要注意綁定名稱不要重復

-->
<view 
wx:for="{{list}}" 
wx:for-item="item" 
wx:for-index="index" 
wx:key="id">
  {{index}} - {{item.name}}
</view>

<!-- 
    默認情況下 我們不寫
      wx:for="{{list}}" 
      wx:for-item="item" 
      wx:for-index="index" 

      item 和 index 也是生效的
      只有一層的話 wx:for-item="item" wx:for-index="index" 可以省略
-->

<view wx:for="{{list}}" wx:key='*this'>{{item.name}}</view>

<!--  
  對象循環(huán)
  1.wx:for='{{對象}}' wx:for-item="對象的值" wx:for-index="對象的屬性"
  2. 循環(huán)對象的時候 最好把item 和 index 的名稱改一下
      wx-for-item = 'value' wx:for-index = 'key'
  -->
  <view wx:for="{{obj}}" wx:for-item="value" wx:for-index='key'>
    {{key}} - {{value}}
  </view>

blck

  1. 占位符
  2. 寫代碼的時候 可以看到整個標簽的存在
  3. 頁面的渲染小程序會把他移除掉

條件渲染

    條件渲染
    1. wx:if="{{true / false}}"
       wx:if
       wx:elif
       wx:else
    2. hidden
       在標簽上直接加入屬性hidden
       hidden="{{true}}"
    3. 什么場景使用哪個
      1. 當標簽不是頻繁切換顯示 優(yōu)先使用 wx:if (直接把標簽從頁面中移除掉)
      2. 當標簽頻繁切換顯示 優(yōu)先使用 hidden (通過添加樣式方法來切換顯示)    

事件綁定

  1. 需要給input標簽綁定 input事件
     綁定關鍵字 bindinput 
  2. 如果獲取輸入框的值
     通過事件源對象來獲取
     e.detail.value
  3. 把輸入框的值賦值給data當中
     不能直接用vue中的方法
     this.num = e.detail.value
     正確寫法
     this.setData({
       num: e.detail.value
     })
     在js中拿到data的值
     this.data.num
  4. 點擊事件 bindtap
     1. 無法在小程序中直接通過函數(shù)傳參 bindtap='readletap(1)'
     2. 通過自定義屬性傳遞參數(shù) data-num='{{1}}' js中通過e.currentTarget.dataset.num

wxml

<input type="text" value="{{num}}" bindinput="gbInput" />
<button size="mini" bindtap='readletap' data-num='{{1}}'>+</button>
<button size="mini" bindtap='readletap' data-num='{{-1}}'>-</button>
<view>{{num}}</view>

js

// pages/demo1/demo1.js
Page({
  data: {
    num: 0
  },
  gbInput(e) {
    this.setData({
      num: parseInt(e.detail.value)
    })
  },
  readletap(e) {
    this.setData({
      num: e.currentTarget.dataset.num + this.data.num
    })
  }
})

尺寸單位

rpx 可以根據(jù)屏幕進行自適應慨代,規(guī)定屏幕為750rpx羡铲。如在 iPhone6 上,屏幕寬度為375px,共有750個物理像素,則750rpx = 375rpx物理像素,1rpx = 0.5px = 1物理像素吹截。
設備 rpx換算px (屏幕寬度/750) px換算rpx (750/屏幕寬度)


image.png

建議: 開發(fā)微信小程序時設計師可以用 iPhone6 作為視覺稿的標準。
注意: 在較小的屏幕上不可避免的會有一些毛刺凝危,請在開發(fā)時盡量避免這種情況刺彩。

需要把頁面中的某些元素的單位 由 px 改成prx

1 設計稿 750 px
    750 px = 750 rpx
    1 px = 1 rpx
2 把屏幕高度改成 375
    375 px = 750 rpx
    1 px = 2rpx
    1rpx = 0.5px
3 如果存在一個設計稿 寬度 414 或者 未知 page
   1 設計稿 page 存在一個元素 寬度 100px
   2 拿以上的需求 去實現(xiàn) 不同寬度的頁面適配

    page px = 750rpx
    1 px = 750rpx / page
    100 px = 750 rpx * 100 / page

樣式導入

通過@ import 來引入
路徑只能寫相對路徑

@ import “../../styles/common.wxss”;

選擇器和使用less

小程序不知此通配符 *{}


image.png

常見標簽

常用 view, text, rich-text, button, image, navigator, icon, swiper, radio, checkbox。 等等

text

text的decode可以解析的有 &nbsp; &lt; &gt; &amp; &apos; &ensp; &emsp;

image

   image 圖片標簽
   1 src 指定要加載的圖片路徑
     圖片存在默認的寬度和高度 320 * 240 不設置寬高弃锐,就會默認320 * 240
   2 mode 決定 圖片內(nèi)容 如何 和 圖片標簽 寬高 適配 列舉一些常用的
      1. scaleToFill 默認值 不保持叢橫比縮放圖片瑰排,使用圖片的寬高完全拉伸填滿 image 元素
      2 aspectFit 保持寬高比 確保圖片的長邊 顯示出來 適合頁面輪播圖 (常用)   
      3 aspectFill 保持縱橫比縮放圖片, 只保證圖片的 短 邊能完全顯示出來支鸡。 (少用)
      4 widthFix 以前web圖片的 寬度指定后 高度會自己安裝比例來調(diào)整 (常用)
      5 bottom冬念。。 類似以前的background-position
   3. 小程序中的image 直接支持 懶加載 lazy-load
      1. lazy-load會自己判斷 當 圖片 出現(xiàn)在視口 上下 三屏的時候 自己開始加載圖片

Swiper

    swiper 標簽 存在默認樣式
      width:100%
      height: 150px image 存在默認寬度和高度 320 * 240
      swiper高度無法實現(xiàn)由內(nèi)容撐開
    先找出 原圖的寬度和高度 等比例 給swiper 定 寬度和高度
      原圖的寬度和高度 750 * 310
      swiper 寬度 / swiper 寬度 = 原圖的寬度 / 原圖的高度
      swiper 高度 = swiper 寬度 * 原圖的高度 / 原圖的寬度
      height:
       * 310 / 750  
      窗口固定寬度為100vw牧挣,將窗口寬度平均分為100份急前,每一份是1vw。
      窗口固定高度為100vh瀑构,將窗口高度平均分為100份裆针,每一份是1vh。
<swiper>
  <swiper-item>
    <image mode="widthFix" src="http://pic50.t8tcdn.com/adcms/ad/201909/25/c8cad7f58fd875d5d3ef020f11c7886d6696.jpg" />
  </swiper-item>
  <swiper-item>
    <image mode="widthFix" src="http://pic50.t8tcdn.com/adcms/ad/202001/17/938f8f2dbb8e1c30bd47cda9ca65f5cb83269.jpg" />
  </swiper-item>
</swiper>

wxss

swiper{
  width: 100%;
  /* height: calc(750rpx * 310 / 750); */
  height: calc(100vw * 310 / 750);
  /*height: 圖片的高度也可以*/
}
image {
  width: 100%;
}

navigator

  導航組件 navigator
  塊級元素 默認會換行 可以直接加寬度高度
  1 參數(shù) url 要跳轉的頁面路徑 可以絕對路徑 相對路徑
  2 參數(shù) target 要跳轉到當前的小程序 還是其他的小程序
    target = 'self' 默認值 自己小程序頁面
    miniprogram 其他小程序頁面
  3 open-type 跳轉方式 
    1 navigator 默認值 保留當前頁面,跳轉到應用內(nèi)的某個頁面世吨,但不能跳到tabbar頁面
    2 redirect 關閉當前頁面澡刹,跳轉到應用內(nèi)的某個頁面,但不允許跳轉tabber
    3 switchTab 跳轉到 tabber 頁面耘婚,并關閉所有非 tabBer 頁面
    4 reLaunch 關閉所有頁面 打開到應用中
 
 <!-- navigator 默認值 跳轉到pages/demo/demo 頂部顯示可以返回箭頭 可返回當前頁面 -->
<navigator url="/pages/demo/demo">跳轉</navigator>
<!-- redirect 跳轉到pages/demo/demo 頂部左上角顯示返回首頁 關閉當前頁面 不能返回當前頁面 -->
<navigator url="/pages/demo/demo" open-type="redirect">跳轉</navigator>
<!-- 跳轉到 tabber 頁面罢浇,不能返回非tabber的頁面 -->
<navigator open-type="switchTab" url="/pages/index/index"></navigator>
<!-- reLaunch 可以隨便跳轉哪個頁面 左上角返回首頁 關閉當前頁面 -->
<navigator open-type="reLaunch" url="/pages/demo/demo">reLaunch 跳轉</navigator>

rich-text 富文本標簽

可以解決服務端傳過來的富文本編輯的文章
wxml

<rich-text nodes="{{html}}"></rich-text>

js

// pages/demo3/demo3.js
Page({
  data: {
    html: '<div style="color: red">哈哈哈</div>'
  },
})

button外觀樣式

  button
  外觀的屬性
    1 size 控制按鈕的大小 默認是大尺寸
      sizr='mini' 小尺寸
    2 type 用來控制按鈕的顏色
      type='default' 灰色
      type='primary' 綠色
      type='warn' 紅色  
    3 plain 鏤空  
    4 loading 在按鈕前面會有一個loading
<button size='mini'>按鈕</button>
<button>default按鈕</button>
<button type='primary'>primary按鈕</button>
<button type='warn'>warn按鈕</button>
<button type='warn' plain>plain按鈕</button>
<button type='primary' loading>loading</button>

button 開放能力

 button
   open-type:
    1 contact 直接打開 客服對話功能 需要在微信小程序的后臺配置
    2 share 轉發(fā)當前的小程序 到微信朋友中 不能把小程序 分享到朋友圈
    3 getPhoneNumber 獲取當前用戶手機號碼信息 結合一個事件來使用 不是企業(yè)的小程序賬號 沒有權限來獲取用戶手機號碼
      1 綁定一個事件bindgetphonenumber
      2 在事件的回調(diào)函數(shù)中 通過參數(shù)來獲取信息
      3 獲取到的信息 已經(jīng)加密過了
        需要搭建小程序后臺,在后臺服務器中進行解析沐祷,然后再傳到小程序頁面中 就可以看到用戶的手機號碼了
    4 getUserInfo 獲取當前用戶的個人信息
      使用方法 類似 獲取當前用戶的手機號碼
      可以直接獲取 不存在加密的字段
      通過 回調(diào) bindgetuserinfo = 'getInfo'
      getInfo(e) {}
    5 launchApp 在小程序當前直接打開app 頁面
      需要 在app中 通過app的某個鏈接打開小程序
      在小程序中在通過這個功能重新打開app
    6 openSetting 打開小程序的內(nèi)置 授權頁面
      授權頁面中 只會出現(xiàn)用戶曾經(jīng)授權過的權限
    7 feedback 打開小程序 內(nèi)置的 用戶意見反饋頁面
      只能通過真機來打開
<button open-type='contact'>contact</button>
<button open-type='share'>share</button>
<button open-type='getPhoneNumber' bindgetphonenumber="getPhone">getPhoneNumber</button>
<button open-type="getUserInfo" bindgetuserinfo="getInfo">getUserInfo</button>
<button open-type="openSetting">openSetting</button>
<button open-type="feedback">feedback</button>
<image src="{{userInfo.avatarUrl}}"></image>

icon

image.png

單選框

  radio 單選框
  1 radio標簽 必須和父元素 radio-group 來使用
  2 value 選中的單選框的值
  3 需要給radio-group 綁定bindchange事件
  4 需要在頁面中顯示選中的值
  5 color 改變單元框的顏色
  <radio-group bindchange='getGender'>
    <radio value='男' checked="{{true}}"  color='red'>男</radio>
    <radio value='女'>女</radio>
  </radio-group>
  <view>選中的信息:{{gender}}</view>
// pages/demo5/demo5.js
Page({
  data: {
    gender: '男',
    current: 0
  },
  getGender(e) {
    let gender = e.detail.value
    this.setData({
      gender
    })
  },
  nextFn() {
    let _this = this.data;
    if(_this.current === 2) {
      this.setData({
        current: 0
      })
    }else {
      this.setData({
        //前加加  先加在賦值
        current: ++ this.data.current
        //不起作用是因為 后加加 先賦值后加價
        // current: this.data.current++
      })
    }
  }
})

checkbox

<view>
  <checkbox-group bindchange='getValue'>
    <checkbox wx:for="{{list}}" value="{{item.value}}" wx:key="id">
      {{item.name}}
    </checkbox>
  </checkbox-group>
</view>
// pages/demo6/demo6.js
Page({
  data: {
    list: [
      {
        id: 1,
        name: '蘋果',
        value: 'apply'
      },
      {
        id: 2,
        name: '葡萄',
        value: 'grape'
      },
      {
        id: 3,
        name: '香蕉',
        value: 'banana'
      }
    ],
    checkList: []
  },
  getValue(e) {
    this.setData({
      checkList: e.detail.value
    })
    console.log(e);
  }
})

小程序自定義組件初體驗

第一步 創(chuàng)建components文件夾嚷闭,在components文件夾中建一個組件


image.png

第二步 在想用組件的地方,打開json修改 組件路徑

{
  "usingComponents": {
    "Tabs1": "../../components/Tabs/Tabs"
  }
}

第三步 在wxml 中使用

<Tabs1></Tabs1>

自定義組件-父向子傳遞數(shù)據(jù)

父組件wxml

<!--pages/demo1/demo1.wxml-->
<Tabs1 abc="abc123"></Tabs1>

子組件js

Component({
  /**
   * 組件的屬性列表
   */
  properties: {
    //要接受父組件的名稱戈轿,子組件直接用{{abc}} 即可
    abc: {
      type: String, //要接受的數(shù)據(jù)類型
      value: ' ' //默認值凌受,如果父組件不傳值,就以value值為準
    }
  },
})

子組件wxml

<view>
    //頁面上的值 就是 abc123
    {{abc}}  
</view>

父向子傳遞數(shù)據(jù)demo

父組件wxml

<Tabs1 tabs="{{tabs}}"></Tabs1>

父組件js

// pages/demo1/demo1.js
Page({
  data: {
    tabs: [
      {
        id: 1,
        name: '首頁',
        active: true
      },
      {
        id: 2,
        name: '原創(chuàng)',
        active: false
      },
      {
        id: 3,
        name: '分類',
        active: false
      },
      {
        id: 4,
        name: '關于',
        active: false
      }
    ]
  }
})

子組件js

// components/Tabs.js
Component({
  /**
   * 組件的屬性列表
   */
  properties: {
    //要接受父組件的名稱思杯,子組件直接用{{abc}} 即可
    tabs: {
      type: Array, //要接受的數(shù)據(jù)類型
      value: [] //默認值胜蛉,如果父組件不傳值,就以value值為準
    }
  },

  /**
   * 組件的初始數(shù)據(jù)
   */
  data: {

  },

  /**
   * 組件的方法列表
   */
  methods: {
    eventTabs(e) {
      let { index } = e.target.dataset;
      let { tabs } = this.data;
      //forEach 改變原數(shù)組
      tabs.forEach((v, i) => i === index ? v.active = true : v.active = false);
      this.setData({
        tabs
      })
    }
  }
})

子組件wxml

<view class="tabs">
    <view class="tabs_title">
        <!-- wx:for 循環(huán)默認 又 wx:for-item = 'item' 可以拿到循環(huán)的內(nèi)容  wx:for-index = "index" 可以拿到循環(huán)的索引      -->
        <view
                bindtap="eventTabs"
                wx:for="{{tabs}}"
                wx:key="id"
                data-index = '{{index}}'
                class="tabs-item {{item.active ? 'active' : ''}}">
            {{item.name}}
        </view>
    </view>
</view>

子元素向父元素傳遞數(shù)據(jù)

子向父傳遞數(shù)據(jù) 通過事件的方式傳遞
在子組件的標簽中加入一個自定義組件

  • 子組件js
  methods: {
    eventTabs(e) {
      let { index } = e.target.dataset;
      //向父組件傳遞值
      // 觸發(fā)父組件中的自定義組件 同時傳遞數(shù)據(jù) 給 父組件
      // this.triggerEvent('父組件自定義的事件名稱', { 要傳遞的參數(shù) })
      this.triggerEvent('changeItem', { index });
    }
  }
  • 父組件wxml
//bindchangeItem 是子組件自定義的事件
<Tabs1 tabs="{{tabs}}" bind:changeItem="handleItemChange"></Tabs1>

父組件js

  handleItemChange(e) {
    let { index } = e.detail;  // 1
    //上面代碼等價于
    //let index = e.detail.index
  }

slot 插槽

    slot 標簽 其實就是一個占位符 插槽
    等到 父組件 調(diào)用 子組件的時候 再傳遞 標簽過來 最終這些被傳遞的標簽
    就會替換slot插槽位置

子組件wxml

<view>
        <!--
            slot 標簽 其實就是一個占位符 插槽
            等到 父組件 調(diào)用 子組件的時候 再傳遞 標簽過來 最終這些被傳遞的標簽
            就會替換slot插槽位置
        -->
        <slot></slot>
</view>

父組件wxml

<Tabs1>
    父組件傳過來的值
</Tabs1>

組件的其他屬性

image.png

app.js 應用生命周期

App({
  // 應用第一次啟動的就會觸發(fā)的事件
  onLaunch() {
    // 在應用第一次啟動時候色乾, 獲取個人信息
    console.log('onLaunch');
  },
  // 應用 被用戶看見 觸發(fā)事件
  onShow() {
    // 對應用的數(shù)據(jù)或者頁面效果重置
    console.log('onShow');
  },
  // 應用隱藏 觸發(fā)事件
  onHide() {
    //暫吞懿幔或者清除定時器
    console.log('onHide');
  },
  // 應用的代碼發(fā)生報錯的時候 就觸發(fā)
  onError (err) {
    // 在應用發(fā)生代碼報錯的時候,收集用戶的錯誤信息暖璧。通過異步請求 將錯誤信息發(fā)送到后臺去
    console.log('onError');
  },
  // 頁面找不到j就會觸發(fā)
  // 應用第一次啟動的時候案怯,如果找不到第一個入口頁面 才會觸發(fā) 類似404頁面 找不到頁面 就跳到其他頁
  onPageNotFound() {
    console.log('onPageNotFound');
    wx.navigateTo({
      url: 'pages/demo1/demo1',
    })
  }
})

頁面生命周期

/**
   * 生命周期函數(shù)--監(jiān)聽頁面加載
   */
  onLoad: function (options) {
    //發(fā)送一些異步請求來初始化頁面數(shù)據(jù)
    console.log('onLoad');
  },


  /**
   * 生命周期函數(shù)--監(jiān)聽頁面顯示
   */
  onShow: function () {
    console.log('onShow');
  },

  /**
   * 生命周期函數(shù)--監(jiān)聽頁面初次渲染完成
   */
  onReady: function () {
    console.log('onReady');
  },

  /**
   * 生命周期函數(shù)--監(jiān)聽頁面隱藏
   */
  onHide: function () {
    console.log('onHide');
  },

  /**
   * 生命周期函數(shù)--監(jiān)聽頁面卸載 就是跳轉鏈接 左上角沒有返回箭頭
   */
  onUnload: function () {
    console.log('onUnload');
  },

  /**
   * 頁面相關事件處理函數(shù)--監(jiān)聽用戶下拉動作
   * 要在app.json中配置
   * "enablePullDownRefresh": true,
     "backgroundColor": "#ccc",
      更新一些數(shù)據(jù)接口
   */
  onPullDownRefresh: function () {
    console.log('onPullDownRefresh')
  },

  /**
   * 頁面上拉觸底事件的處理函數(shù)
   * 頁面上拉底部觸發(fā)事件
   * 需要讓頁面 上線上下滾動才行
   */
  onReachBottom: function () {
    console.log('onReachBottom');
  },

  /**
   * 用戶點擊右上角分享
   */
  onShareAppMessage: function () {
    console.log('onShareAppMessage');
  },

  /**
   * 只有頁面一滾動就會觸發(fā)
   * */
  onPageScroll() {
    console.log('onPageScroll');
  },
  /**
   * 當前是tab頁面時候,點擊tab觸發(fā)
   * */
  onTabitemTap() {

  }

request 網(wǎng)絡請求

image.png

GET

wx.request({
    url: 'con.theme_user',
    method: 'GET',
    data: {
        act: 'getUserInfo',
        wxappid: confirm.wyy_user_wxappid,
        openid: resizeBy.data.openid
    },
    header: {
        "Content-Type": "application/json"
    },
    success: (res) => {
        console.log(res.data);
        // 存放用戶基本信息
        this.setData({
            userInfo: res.data.userInfo,
            hasUserInfo: true,
            canIUse: true
        })
    }
})
wx.request({
    header: {
        "content-type": "application/json"
    },
    method: "POST",
    url: `${this.globalData.api}login/token`,
    data: {
        code: code
    },
    success: res => {
        var token = res.data.data
        console.log(token);
        wx.setStorageSync('token', token);
        // 設置完token之后獲取首頁數(shù)據(jù)
        // resolve()
    }
})
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末澎办,一起剝皮案震驚了整個濱河市嘲碱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌局蚀,老刑警劉巖麦锯,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異琅绅,居然都是意外死亡扶欣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門千扶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來料祠,“玉大人,你說我怎么就攤上這事澎羞∷枵溃” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵妆绞,是天一觀的道長顺呕。 經(jīng)常有香客問我接谨,道長,這世上最難降的妖魔是什么塘匣? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮巷帝,結果婚禮上忌卤,老公的妹妹穿的比我還像新娘。我一直安慰自己楞泼,他們只是感情好驰徊,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著堕阔,像睡著了一般棍厂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上超陆,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天牺弹,我揣著相機與錄音,去河邊找鬼时呀。 笑死张漂,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的谨娜。 我是一名探鬼主播航攒,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼趴梢!你這毒婦竟也來了漠畜?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤坞靶,失蹤者是張志新(化名)和其女友劉穎憔狞,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體滩愁,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡躯喇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了硝枉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片廉丽。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖妻味,靈堂內(nèi)的尸體忽然破棺而出正压,到底是詐尸還是另有隱情,我是刑警寧澤责球,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布焦履,位于F島的核電站拓劝,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏嘉裤。R本人自食惡果不足惜郑临,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望屑宠。 院中可真熱鬧厢洞,春花似錦、人聲如沸典奉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卫玖。三九已至公你,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間假瞬,已是汗流浹背陕靠。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留脱茉,地道東北人懦傍。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像芦劣,于是被迫代替她去往敵國和親粗俱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

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