vue-infinite-loading2.0 中文文檔

簡(jiǎn)介

這是一個(gè)使用在Vue.js中的無(wú)限滾動(dòng)插件,它可以幫助你快速創(chuàng)建一個(gè)無(wú)限滾動(dòng)列表浊服。


特點(diǎn)

  • 移動(dòng)端支持友好
  • 兼容任何一個(gè)可以滾動(dòng)的元素
  • 有不同的旋轉(zhuǎn)器可以作為加載動(dòng)畫(huà)
  • 支持加載后顯示結(jié)果
  • 支持兩個(gè)方向的無(wú)限加載

<p id="installation">安裝</p>

<strong>注意:vue-infinite-loading2.0只能在Vue.js2.0中使用贯被。如果你想在Vue.js1.0中使用霹崎,請(qǐng)安裝vue-infinite-loading1.3版本</strong>

npm install vue-infinite-loading --save

導(dǎo)入方式

es6模塊導(dǎo)入方式

import InfiniteLoading from 'vue-infinite-loading';
export default {
  components: {
    InfiniteLoading,
  },
};

CommonJS 模塊導(dǎo)入方式

const InfiniteLoading = require('vue-infinite-loading');
export default {
  components: {
      InfiniteLoading,
  },
};

其他方式

<script src="/path/to/vue-infinite-loading/dist/vue-infinite-loading.js"></script>

vue-infinite-loading.js會(huì)注冊(cè)一個(gè)全局變量VueInfiniteLoading,使用時(shí)需要這樣:

 ...
 components: {
     VueInfiniteLoading:VueInfiniteLoading.default,
 }
...

開(kāi)始

基礎(chǔ)使用

在本例中芽丹,我們將創(chuàng)建一個(gè)基本的無(wú)限列表,有如下三個(gè)步驟:

  1. 在你的模板中竭恬,用v-for創(chuàng)建一個(gè)列表
  2. 將InfiniteLoading組件放在列表的底部褥赊;
  3. 將InfiniteLoading組件的ref屬性設(shè)置為infiniteLoading糕档,因?yàn)橐盟鼇?lái)觸發(fā)事件。
  4. 為InfiniteLoading組件創(chuàng)建并綁定一個(gè)加載回調(diào)函數(shù)拌喉。

Template

<template>
  <div>
    <p v-for="item in list">
    Line:
    <span v-text="item"></span>
    </p>
    <infinite-loading :on-infinite="onInfinite" ref="infiniteLoading">    </infinite-loading>
  </div>
</template>

Script

import InfiniteLoading from 'vue-infinite-loading';
export default {
  data() {
    return {
      list: []
    };
  },
  methods: {
    onInfinite() {
      setTimeout(() => {
        const temp = [];
        for (let i = this.list.length + 1; i <= this.list.length + 20; i++) {
          temp.push(i);
        }
        this.list = this.list.concat(temp);
        this.$refs.infiniteLoading.$emit('$InfiniteLoading:loaded');
      }, 1000);
    }
  },
  components: {
    InfiniteLoading
  }
};

在<strong>onInfinite</strong>函數(shù)中速那,每次我們都push 20 個(gè)數(shù)字到list數(shù)組中。我們使用<strong>setTimeout</strong>來(lái)模擬異步請(qǐng)求尿背。最后端仰,不要忘了觸發(fā)一個(gè)<strong>$InfiniteLoading:loaded</strong>事件,它將告訴<strong>InfiniteLoading</strong>組件,數(shù)據(jù)已經(jīng)下載成功田藐。

現(xiàn)在荔烧,我們可以根據(jù)上面的代碼,來(lái)顯示效果汽久。


<p id="hacker">例子:黑客新聞列表頁(yè)面</p>

在這個(gè)例子中鹤竭,我們將模仿一個(gè)黑客新聞列表頁(yè)面,但是會(huì)用<strong>InfiniteLoading</strong>代替<strong>分頁(yè)</strong>

在開(kāi)始這個(gè)例子之前景醇,我們需要準(zhǔn)備以下內(nèi)容:

  • 獲取新聞列表的API,在本例中我們使用 HN Search API
  • 導(dǎo)入axios插件來(lái)請(qǐng)求數(shù)據(jù)

Template

<div class="hacker-news-list">
  <div class="hacker-news-header">
    <a target="_blank" >
      ![](https://news.ycombinator.com/y18.gif)
    </a>
    <span>Hacker News</span>
</div>
<div class="hacker-news-item" v-for="(item, key) in list">
  <span class="num" v-text="key + 1"></span>
  <p>
    <a target="_blank" :href="item.url" v-text="item.title"></a>
  </p>
  <p>
    <small>
      <span v-text="item.points"></span>
      points by
      <a target="_blank" :href="'https://news.ycombinator.com/user?id=' + item.author"
       v-text="item.author"></a>
        |
      <a target="_blank" :href="'https://news.ycombinator.com/item?id=' + item.objectID"
       v-text="item.num_comments + ' comments'"></a>
    </small>
  </p>
</div>
  <infinite-loading :on-infinite="onInfinite" ref="infiniteLoading">
  <span slot="no-more">
    There is no more Hacker News :(
  </span>
  </infinite-loading>
</div>

在模板中臀稚,我們?yōu)楹诳托侣劻斜韯?chuàng)建了一個(gè)header 和 一個(gè)list 。在這個(gè)例子中的<strong>InfiniteLoading</strong>組件啡直,與上個(gè)例子中使用方式有些不同烁涌。我們基于<strong>slot</strong>自定義了當(dāng)沒(méi)有更多數(shù)據(jù)時(shí)的提示內(nèi)容苍碟。

Script

import InfiniteLoading from 'vue-infinite-loading';
import axios from 'axios';
const api = 'http://hn.algolia.com/api/v1/search_by_date?tags=story';
export default {
  data() {
    return {
      list: []
    };
  },
  methods: {
    onInfinite() {
      axios.get(api, {
        params: {
          page: this.list.length / 20 + 1
        }
      }).then((res) => {
        if (res.data.hits.length) {
          this.list = this.list.concat(res.data.hits);
          this.$refs.infiniteLoading.$emit('$InfiniteLoading:loaded');
          if (this.list.length / 20 === 3) {
            this.$refs.infiniteLoading.$emit('$InfiniteLoading:complete');
          }
        } else {
          this.$refs.infiniteLoading.$emit('$InfiniteLoading:complete');
        }
      });
    }
  },
  components: {
    InfiniteLoading
  }
};

在<strong>onInfinite</strong>函數(shù)中酒觅,我們請(qǐng)求了一頁(yè)的新聞撮执,并且每次將它們推入到list數(shù)組中。如果我們請(qǐng)求了3頁(yè)新聞舷丹,將觸發(fā) <strong>$InfiniteLoading:complete</strong>事件去告訴<strong>InfiniteLoading</strong>組件抒钱,現(xiàn)在已經(jīng)沒(méi)有更多數(shù)據(jù)可以加載了。它將顯示我們自定義在模板中的颜凯,表示沒(méi)有更多數(shù)據(jù)的提示內(nèi)容谋币。

Style

.hacker-news-list .hacker-news-item {
   margin: 10px 0;
   padding: 0 10px 0 32px;
   line-height: 16px;
   font-size: 14px;
}
.hacker-news-list .hacker-news-item .num {
  margin-top: 1px;
  margin-left: -32px;
  float: left;
  width: 32px;
  color: #888;
  text-align: right;
}
.hacker-news-list .hacker-news-item p {
  padding-left: 8px;
  margin: 0;
}
.hacker-news-list .hacker-news-item .num:after {
  content: ".";
}
.hacker-news-list .hacker-news-item p>a {
  color: #333;
  padding-right: 5px;
}
.hacker-news-list .hacker-news-item p a {
  text-decoration: none;
}
.hacker-news-list .hacker-news-item p small, .hacker-news-list .hacker-news-item p small a {
  color: #888;
}

<p id="use">與過(guò)濾器一塊使用</p>

在上個(gè)例子的基礎(chǔ)上,我們將在頭部創(chuàng)建一個(gè)下拉選擇作為過(guò)濾器症概,當(dāng)我們改變過(guò)濾器蕾额,列表將會(huì)重新加載。

Template

<div class="hacker-news-list">
<div class="hacker-news-header">
  <a target="_blank" >
    ![](https://news.ycombinator.com/y18.gif)
  </a>
  <span>Hacker News</span>
  <select v-model="tag" @change="changeFilter()">
    <option value="story">Story</option>
    <option value="poll">Poll</option>
    <option value="show_hn">Show hn</option>
    <option value="ask_hn">Ask hn</option>
    <option value="front_page">Front page</option>
 </select>
</div>
<div class="hacker-news-item" v-for="(item, key) in list">
  <span class="num" v-text="key + 1"></span>
  <p>
    <a target="_blank" :href="item.url" v-text="item.title"></a>
  </p>
  <p>
    <small>
      <span v-text="item.points"></span>
      points by
      <a target="_blank" :href="'https://news.ycombinator.com/user?id=' + item.author"
         v-text="item.author"></a>
      |
      <a target="_blank" :href="'https://news.ycombinator.com/item?id=' + item.objectID"
         v-text="item.num_comments + ' comments'"></a>
    </small>
  </p>
</div>
<infinite-loading :on-infinite="onInfinite" ref="infiniteLoading">
  <span slot="no-more">
    There is no more Hacker News :(
  </span>
</infinite-loading>
</div>

Script

import InfiniteLoading from 'vue-infinite-loading';
import axios from 'axios';
const api = 'http://hn.algolia.com/api/v1/search_by_date';
export default {
  data() {
    return {
      list: [],
      tag: 'story'
    };
  },
  methods: {
    onInfinite() {
      axios.get(api, {
        params: {
          tags: this.tag,
          page: this.list.length / 20 + 1
        }
      }).then((res) => {
        if (res.data.hits.length) {
          this.list = this.list.concat(res.data.hits);
          this.$refs.infiniteLoading.$emit('$InfiniteLoading:loaded');
          if (this.list.length / 20 === 10) {
            this.$refs.infiniteLoading.$emit('$InfiniteLoading:complete');
          }
        } else {
          this.$refs.infiniteLoading.$emit('$InfiniteLoading:complete');
        }
      });
    },
    changeFilter() {
      this.list = [];
      this.$nextTick(() => {
        this.$refs.infiniteLoading.$emit('$InfiniteLoading:reset');
      });
    }
  },
  components: {
    InfiniteLoading
  }
};

在<strong>changeFilter</strong>函數(shù)中彼城,我們清楚了列表并等待DOM更新诅蝶,然后我們觸發(fā)一個(gè)<strong>$InfiniteLoading:reset</strong>事件,目的是讓<strong> InfiniteLoading </strong>組件回到最初狀態(tài)募壕,它將立刻請(qǐng)求新的數(shù)據(jù)调炬。

Style

在上個(gè)例子基礎(chǔ)上增加樣式

.demo-inner {
  margin-left: 20px;
  width: 261px;
  height: 455px;
  border: 1px solid #ccc;
  overflow: auto;
}
.hacker-news-list .hacker-news-header {
    padding: 2px;
    line-height: 14px;
    background-color: #f60;
}
.hacker-news-list {
  min-height: 455px;
  background-color: #f6f6ef;
}
.hacker-news-list .hacker-news-header select {
    float: right;
    color: #fff;
    background-color: transparent;
    border: 1px solid #fff;
    outline: none;
}

<p id="server">服務(wù)端渲染</p>

服務(wù)端渲染(SSR)是<strong>Vue.js2.0</strong>的新特性,當(dāng)你在你的SSR應(yīng)用中使用這個(gè)組件舱馅,會(huì)得到類(lèi)似這樣的錯(cuò)誤:

Error: window is not defined
ReferenceError: window is not defined
    at ...
    at ...
    at e.exports (...)
    at Object. (...)
    at p (...)
    at Object.e.exports.render.e (...)
    at p (...)
    at Object. (...)
    at p (...)
    at e.__esModule.default (...)

因?yàn)?lt;strong>style-loader</strong>不支持在這個(gè)時(shí)候本地導(dǎo)出缰泡,詳情點(diǎn)這里,所以我們需要下面的變通方案,為了你的SSR應(yīng)用:

  1.  import InfiniteLoading from 'vue-infinite-loading/src/components/Infiniteloading.vue';
    

    代替

     import InfiniteLoading from 'vue-infinite-loading';
    
  2. <strong>npm install less less-loader --save-dev</strong> 如果你還沒(méi)有安裝它們代嗤。

然后你的SSR應(yīng)用應(yīng)該運(yùn)行良好棘钞。如果不是,你可以加入這個(gè)issue去討論干毅。


<p id="properties">屬性<p>

  • on-infinite
    這是一個(gè)回調(diào)函數(shù)武翎,當(dāng)滾動(dòng)到距離滾動(dòng)父元素底部特定距離的時(shí)候,會(huì)被調(diào)用溶锭。
    通常宝恶,在數(shù)據(jù)加載完成后,你應(yīng)該在這個(gè)函數(shù)中發(fā)送<strong>$InfiniteLoading:loaded</strong>事件趴捅。

    - type           Function
    - reuqired       true
    
  • distance
    這是滾動(dòng)的臨界值垫毙。如果到滾動(dòng)父元素的底部距離小于這個(gè)值,那么<strong>on-infinite</strong>回調(diào)函數(shù)就會(huì)被調(diào)用拱绑。

    - type         Number
    - required     false
    - default      100
    - unit         pixel
    
  • spinner
    通過(guò)這個(gè)屬性综芥,你可以選擇一個(gè)你最喜愛(ài)旋轉(zhuǎn)器作為加載動(dòng)畫(huà)。點(diǎn)擊這里可以看到所有可用的旋轉(zhuǎn)器猎拨。

    - type         String
    - required     false
    - default     'default'
    
  • ref
    正如你所知膀藐,這個(gè)屬性是一個(gè)Vue.js的官方指令屠阻,用來(lái)獲取子組件的實(shí)例。我們需要用它來(lái)得到<strong> InfiniteLoading </strong>組件的實(shí)例來(lái)發(fā)送事件额各。你可以用這種方式來(lái)得到實(shí)例:<strong>this.$refs[the value of ref attribute].</strong>

    - type     String
    - required     true
    
  • direction
    如果你設(shè)置這個(gè)屬性為top,那么這個(gè)組件將在你滾到頂部的時(shí)候国觉,調(diào)用on-infinite函數(shù)。
    <strong>警告:你必須在數(shù)據(jù)加載后虾啦,手動(dòng)地將滾動(dòng)父元素的scrollTop設(shè)置為正確的值麻诀,否則,該組件會(huì)一次又一次調(diào)用on-infinite函數(shù)傲醉。</strong>

    - type         String
    - default     'bottom'
    

<p id="event">事件</p>

<strong>InfiniteLoading </strong>組件將處理一下事件蝇闭。如果你需要通過(guò)組件的實(shí)例來(lái)<strong>$emit</strong>,則可以通過(guò)<strong>ref</strong>屬性來(lái)得到組件實(shí)例。

  • $InfiniteLoading:loaded
    通常硬毕,你需要在數(shù)據(jù)加載后發(fā)送這個(gè)事件呻引,<strong> InfiniteLoading</strong>組件將隱藏加載動(dòng)畫(huà),并且準(zhǔn)備下一次觸發(fā)吐咳。

  • $InfiniteLoading:complete
    如果<strong>InfiniteLoading</strong>組件就不會(huì)接收<strong>$InfiniteLoading:loaded</strong>逻悠,當(dāng)你發(fā)送這個(gè)事件后,它將為用戶(hù)顯示一個(gè)沒(méi)有結(jié)果的提示挪丢。如果<strong>InfiniteLoading</strong>組件接收過(guò)<strong>$InfiniteLoading:loaded</strong>蹂风,當(dāng)你發(fā)送這個(gè)事件的時(shí)候,它會(huì)為用戶(hù)顯示一個(gè)沒(méi)有更多內(nèi)容的提示乾蓬。你可以利用slot來(lái)自定義需要顯示的內(nèi)容惠啄。
    你的<strong>onInfinite</strong>函數(shù)可能像這個(gè)樣子:

    onInfinite() {
        this.$http.get(url, (res) => {
        if (res.data) {
          this.list = this.list.concat(res.data);
          this.$refs[your ref attirbute's value].$emit('$InfiniteLoading:loaded');
        } else {
          this.$refs[your ref attirbute's value].$emit('$InfiniteLoading:complete');
        }
      });
    }
    
  • $InfiniteLoading:reset
    <strong>InfiniteLoading</strong>組件將會(huì)回到最初的狀態(tài),并且<strong>on-infinite</strong>函數(shù)將會(huì)立刻被調(diào)用任内。大部分情況下撵渡,如果你把這個(gè)組件同過(guò)濾器或制表符一起使用,這個(gè)事件還是有用的死嗦。

<p id="slots">插槽</p>

你可以利用<strong>slot</strong>自定義提示的內(nèi)容趋距,當(dāng)然,如果你喜歡的話越除,也可以使用默認(rèn)內(nèi)容:

  <span slot="{{ slot name }}">
    {{ Your content }}
 </span>
  • no-results
    當(dāng)<strong>InfiniteLoading</strong>組件接收到<strong>$InfiniteLoading:complete </strong>事件并且它沒(méi)有接收過(guò)<strong>$InfiniteLoading:loaded</strong>事件時(shí)节腐,這個(gè)內(nèi)容會(huì)顯示出來(lái)。

    - type       String
    - default     No results :(
    
  • no-more
    當(dāng)<strong>InfiniteLoading</strong>組件接收到<strong>$InfiniteLoading:complete </strong>事件并且它已經(jīng)接收過(guò)<strong>$InfiniteLoading:loaded</strong>事件時(shí)摘盆,這個(gè)內(nèi)容會(huì)出現(xiàn)翼雀。

  • spinner
    如果,你不喜歡當(dāng)前旋轉(zhuǎn)器孩擂,你可以自定義自己的旋轉(zhuǎn)器作為加載時(shí)的動(dòng)畫(huà)狼渊。

    - type         HTML
    - default     default spinner
    

<p id="spinners">旋轉(zhuǎn)器</p>

你可以用<strong>spinner</strong>屬性,選擇你最喜愛(ài)的旋轉(zhuǎn)器作為加載動(dòng)畫(huà):

  <infinite-loading spinner="{{ spinner name }}"></infinite-loading>

點(diǎn)擊這里可以查看幾個(gè)可用的旋轉(zhuǎn)器类垦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末狈邑,一起剝皮案震驚了整個(gè)濱河市城须,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌米苹,老刑警劉巖糕伐,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異驱入,居然都是意外死亡赤炒,警方通過(guò)查閱死者的電腦和手機(jī)氯析,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)亏较,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人掩缓,你說(shuō)我怎么就攤上這事雪情。” “怎么了你辣?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵巡通,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我舍哄,道長(zhǎng)宴凉,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任表悬,我火速辦了婚禮弥锄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蟆沫。我一直安慰自己籽暇,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布饭庞。 她就那樣靜靜地躺著戒悠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪舟山。 梳的紋絲不亂的頭發(fā)上绸狐,一...
    開(kāi)封第一講書(shū)人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音累盗,去河邊找鬼寒矿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛幅骄,可吹牛的內(nèi)容都是我干的劫窒。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼拆座,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼主巍!你這毒婦竟也來(lái)了冠息?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤孕索,失蹤者是張志新(化名)和其女友劉穎逛艰,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體搞旭,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡散怖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肄渗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片镇眷。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖翎嫡,靈堂內(nèi)的尸體忽然破棺而出欠动,到底是詐尸還是另有隱情,我是刑警寧澤惑申,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布具伍,位于F島的核電站,受9級(jí)特大地震影響圈驼,放射性物質(zhì)發(fā)生泄漏人芽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一绩脆、第九天 我趴在偏房一處隱蔽的房頂上張望萤厅。 院中可真熱鬧,春花似錦衙伶、人聲如沸祈坠。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)赦拘。三九已至,卻和暖如春芬沉,著一層夾襖步出監(jiān)牢的瞬間躺同,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工丸逸, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蹋艺,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓黄刚,卻偏偏與公主長(zhǎng)得像捎谨,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

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

  • 轉(zhuǎn)載 :OpenDiggawesome-github-vue 是由OpenDigg整理并維護(hù)的Vue相關(guān)開(kāi)源項(xiàng)目庫(kù)...
    果汁密碼閱讀 23,100評(píng)論 8 124
  • 來(lái)源:github.com Vue.js開(kāi)源項(xiàng)目速查表:https://www.ctolib.com/cheats...
    zhangtaiwei閱讀 11,604評(píng)論 1 159
  • UI組件element ★11612 - 餓了么出品的Vue2的web UI工具套件 Vux ★7503 - 基于...
    董董董董董董董董董大笨蛋閱讀 8,506評(píng)論 6 123
  • 沒(méi)想到果果這次參賽能得一等獎(jiǎng)涛救,而且還有五佰元獎(jiǎng)金畏邢!真是意外的驚喜!所以检吆,無(wú)論干什么舒萎,只要持之以恒,努力去做蹭沛,就會(huì)有...
    阿盟果果閱讀 223評(píng)論 0 0
  • 昨天早上臂寝,在公園里散步,見(jiàn)到好幾塊新辟的菜地摊灭,一個(gè)奶奶蹲在旁邊望著地里新長(zhǎng)的綠芽發(fā)呆咆贬。我也是閑來(lái)無(wú)事,就上去聊了幾...
    蘇曉懶閱讀 406評(píng)論 2 1