


Vue.js simule l'effet de chargement de défilement de l'historique du chat WeChat
Cet article montre comment réaliser un effet de chargement de défilement similaire aux enregistrements de chat WeChat dans l'application Vue.js. Lorsque l'utilisateur défile vers le haut, plus d'historique de chat sont chargés et la barre de défilement est dans sa position actuelle plutôt que de revenir en haut.
Le code suivant fournit une solution d'implémentation complète:
<template> <div id="app"> <div class="container" ref="chatListRef"> <ul> <li v-for="item in msgs" :key="item">{{ article }}</li> </ul> </div> </div> </template> <script> import { ref, onMounted, nextTick } from 'vue'; export default { setup() { const msgs = ref([...generateNumbers(1, 200)]); // 初始数据 const chatListRef = ref(null); const generateNumbers = (start, end) => { // 生成数字序列,此处可替换为实际数据加载逻辑 const numbers = []; for (let i = start; i <= end; i ) { numbers.push(i); } return numbers; }; const scrollToBottom = async () => { await nextTick(); // 确保DOM更新完毕 chatListRef.value.scrollTop = chatListRef.value.scrollHeight; }; const handleScroll = () => { const container = chatListRef.value; if (container.scrollTop === 0) { const prevScrollHeight = container.scrollHeight; const newMsgs = generateNumbers(msgs.value.length 1, msgs.value.length 100); // 加载更多数据 msgs.value = [...newMsgs, ...msgs.value]; // 将新数据添加到数组头部 nextTick(() => { container.scrollTop = container.scrollHeight - prevScrollHeight; }); } }; onMounted(() => { scrollToBottom(); }); return { msgs, chatListRef, handleScroll }; }, }; </script> <style scoped> * { margin: 0; padding: 0; } html, body { height: 100vh; background-color: #e9f5f8; } .container { width: 200px; height: 500px; overflow-y: auto; background-color: #fff; } </style>
La clé du code réside dans la fonction handleScroll
: il écoute les événements de défilement, et lorsque la barre de défilement atteint le haut ( container.scrollTop === 0
), il charge de nouvelles données et utilise nextTick
pour garantir qu'après le DOM à jour, la position de la barre de défilement est recalculée, en gardant ainsi la barre de décrex dans sa position d'origine. La fonction generateNumbers
est un espace réservé qui doit être remplacé par votre logique réelle de chargement de données (par exemple, récupérer les données de l'API). scrollToBottom
fait défiler la barre de défilement vers le bas une fois le composant monté.
Cette version améliorée est plus concise et utilise la fonction de crochet de cycle de vie onMounted
pour initialiser la position de la barre de défilement, améliorant la lisibilité et la maintenabilité du code. N'oubliez pas de remplacer la fonction generateNumbers
pour votre méthode réelle d'acquisition de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

vue中props可以传递函数;vue中可以将字符串、数组、数字和对象作为props传递,props主要用于组件的传值,目的为了接收外面传过来的数据,语法为“export default {methods: {myFunction() {// ...}}};”。

本篇文章带大家聊聊vue指令中的修饰符,对比一下vue中的指令修饰符和dom事件中的event对象,介绍一下常用的事件修饰符,希望对大家有所帮助!

如何覆盖组件库样式?下面本篇文章给大家介绍一下React和Vue项目中优雅地覆盖组件库样式的方法,希望对大家有所帮助!

react与vue的虚拟dom没有区别;react和vue的虚拟dom都是用js对象来模拟真实DOM,用虚拟DOM的diff来最小化更新真实DOM,可以减小不必要的性能损耗,按颗粒度分为不同的类型比较同层级dom节点,进行增、删、移的操作。


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

SublimeText3 version anglaise
Recommandé : version Win, prend en charge les invites de code !

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP