麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 一個快速的Vue3無限滾動組件

一個快速的Vue3無限滾動組件

來源:千鋒教育
發布人:wjy
時間: 2022-09-20 09:52:29 1663638749

  如果你在社交媒體上停留的時間過長,那么,你所在的網站很可能正在使用無限滾動組件。

  無限滾動組件是在用戶向下滾動頁面時加載新內容,而不是將其分成多個頁面。

  它們對于特定類型的內容(例如用戶生成的內容)非常有效。

  以下是無限滾動的示例。

一個快速的Vue3無限滾動組件1

 

  在今天的教程中,我們將使用 Composition API 創建一個 Vue3 無限滾動組件。這是我們將在它結束時構建的內容的預覽。

  如你所見,它是無限滾動,屏幕右側的滾動條反映了這一點。

一個快速的Vue3無限滾動組件2

 

  現在,讓我們一起來看看這個組件的實現過程。

  為什么還要使用無限滾動組件?

  我們都見過使用無限滾動來顯示其內容的網站的示例,但是什么時候使用它,它的效果會比使用典型的分頁系統更好呢?

  你可以閱讀我之前分享的一篇文章《無限滾動與分頁哪個用戶體驗更好?如何正確使用它們》,在這里,我只簡單的總結一下它們的有缺點。

  無限滾動的優點:

  用戶參與和內容發現

  滾動比點擊更好(更好的可用性)

  滾動適用于移動設備

  無限滾動的缺點:

  頁面性能和設備資源

  項目搜索和位置 - 用戶無法為頁面添加書簽并保留位置

  不相關的滾動條

  就像所有與 Web 開發有關的事情一樣,選擇任何一個選項都有正當的理由。請務必考慮哪個最適合你的項目!

  無論如何,學習如何構建一個 Vue3 無限滾動組件是非常有趣的,并且可能對你有用。

  首先,讓我們從高層次上回顧一下這個系統是如何工作的。

  主要分為三個部分:

  生成內容的模擬 API 調用

  呈現單個內容的 PostComponent

  ListComponent 包含所有內容組件并處理從 API 加載內容

  1.模擬 API 調用

  在教程中,我們將編寫一個返回硬編碼數據的虛擬 API 調用。如果你在真實的后端和數據庫中實現這一點,重要的方面,你可以根據數據庫中的大小和位置決定以某種方式限制你的結果。

  這個 API 調用可以是任何東西,從簡單應用程序中的簡單數據庫查詢一直到更高級應用程序中的復雜推薦算法。

  以下是社交媒體網站常用的內容加載算法的一些不同想法:

  發布日期

  與當前用戶的相關性

  帖子上的活動

  然而,為簡單起見,我們的算法只會生成隨機的帖子數據,并根據給定的參數返回 X 個帖子。

var names = ['Matt Maribojoc''Lebron James''Bill Gates''Childish Gambino'] // used to generate posts for this tutorial

const getPosts = (number) => {

  // generate a number of posts

  // in a real setting, this would be a database call or algorithm

  let ret = []

  for (var i = 0; i < number; i++) {

    ret.push({

      author: names[i % names.length],

      content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do.'

    })

  }  

  return ret

}

export default getPosts

  2.制作我們的內容組件

  現在我們有了生成內容的方法,讓我們創建一個允許我們渲染它們的組件。

  這段代碼沒有什么花哨的,我們只需要通過組件的 props 接收一個帖子,然后渲染作者和內容。這里也有一些風格可以讓事情變得更漂亮。

一個快速的Vue3無限滾動組件3

  3.顯示我們的內容

  接下來,讓我們實際弄清楚如何在屏幕上顯示一些帖子。這就是 ListComponent.vue 組件派上用場的地方。

  如果你沒有任何 Vue3 經驗,這段代碼對你來說可能有點奇怪。但是請查看本 Vue3 入門指南。

  簡而言之,Vue3 將 Options API 替換為 Composition API,這意味著代碼(生命周期掛鉤、數據等)都組織在一個設置方法中。

  所以首先,我們要導入一些東西:

  我們的 API 調用

  我們的 PostComponent

  用于創建反應數據的參考

  onMounted 和 onUnmounted 訪問這些生命周期 hooks。

一個快速的Vue3無限滾動組件4

  接下來,在我們的 setup 方法中,我們想要設置一個響應式的內容變量來調用我們的 getPosts API 調用。不要忘記返回它,以便我們的模板可以訪問它!

一個快速的Vue3無限滾動組件5

  最后,為了在模板中顯示我們的數據,我們想要運行一個 v-for 循環來迭代我們的內容并為每個內容呈現一個 PostComponent。我們的模板應該是這樣的(注意 .list-component 有一個 ref,我們稍后會談到)

一個快速的Vue3無限滾動組件6

  我們當前的頁面應該呈現 10 個內容,但是如果我們滾動到底部,什么都不會發生。

  那么,現在讓我們繼續進行激動人心的部分:無限滾動!

  4.Vue3 無限滾動

  現在我們已經完成了所有設置,當用戶向下滾動到內容底部時,我們可以開始加載更多數據。

  讓我們從創建一個方法開始,它一次加載 10 個內容并將它們附加到我們的帖子變量中。

一個快速的Vue3無限滾動組件7

  現在,我們只需要一種方法來觸發這個方法。我們將通過添加一個監聽滾動事件并調用方法的事件監聽器來做到這一點。我們將在組件安裝時添加它,并在組件卸載(銷毀)時刪除它。

一個快速的Vue3無限滾動組件8

  非常棒!現在,我們需要準備好開始加載更多內容了。如果你還記得前面的教程內容的話,其實,我們只需要向 .list-component 元素添加了一個 refs 屬性。如果你之前在 Vue 中使用過 refs,這是一個熟悉的概念,但我們在 Vue3 中設置它們的方式有點不同。

  我們將再次使用 refs 方法來實例化我們的 ref,然后,從我們的 setup 方法中返回它。

一個快速的Vue3無限滾動組件9

  通過使用 refs 訪問我們的元素,我們可以完成我們的方法來確定我們是否滾動到內容的底部。

  以下代碼通過檢查我們內容的底部是否在屏幕上可見來工作。如果是,我們調用我們的方法來加載更多內容!

一個快速的Vue3無限滾動組件10

  就是這樣!當我們向下滾動到當前內容的底部時,應該會自動加載新內容。讓我們看看我們有什么。

  無限滾動組件的可能擴展

  這只是創建Vue3無限滾動組件的介紹。有很多不同的方向可以改進它。

  如果你在真實系統中構建它,我會考慮添加以下一些想法。

  由于 API 調用將是異步的,因此創建某種加載微調器,在加載新數據時顯示

  創建更復雜的 API 算法并將其連接到數據庫

  為每個內容添加更多數據并找到顯示它的新方法

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 99久久精品免费看国产| 日本口工h全彩漫画大全| 又色又爽又黄的视频软件app| 再灬再灬再灬深一点舒服| 国产男女爽爽爽免费视频| 美国式性禁忌| 欧美区日韩区| 美女扒开尿口让男人捅| 极品丝袜乱系列在线阅读| 欧美性xxxxx极品娇小| 女人和拘做受口述| 1111| www.henhenai| 无码精品一区二区三区免费视频 | 久久国产99| 鲁一鲁射一射| 好大好硬别停老师办公室视频| 欧美在线高清视频| 欧美日韩图片| 中国美团外卖男男china| 外出电影| 亚洲私人影院| 妞干网视频| 91精品国产91久久久久久| 国产福利影院在线观看| 四虎影视永久在线精品免费| 欧美日韩欧美| 免费高清a级毛片在线播放 | 动漫精品第一区二区三区| 一级黄影| 成人韩免费网站| 亚洲国产精品一区二区久久 | 好男人在线社区www| 奶大灬舒服灬太大了一进一出| 亚洲ww| 国产精品午夜电影| 成人理论片| 福利电影一区二区| 日本一道高清不卡免费| 亚洲日本va午夜中文字幕一区| 新婚之夜性史观看|