账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue 多聊天窗口,聊天窗口如何复用/缓存?
    22
    0

    像TIM的聊天窗口这样,点击不同的聊天对象,之前的聊天记录还在

    之前想的是聊天记录放vuex,然后同时只能开一个聊天窗口,每次打开新的聊天会话,重新更新vuex的聊天数据

    但是这样很明显不合理,频繁切换聊天对象的话...

    所以现在想的是,开启一个新的会话,就新增一个新的组件,聊天记录放这个组件里面,就不用每次切换都重新读取了

    但是,我不知道怎么加载同一个组件,请问有没有类似的例子可以参考的呀

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 白白的胖子 普通会员 1楼

      在Vue中,我们可以使用浏览器的localStorage来实现聊天窗口的复用和缓存。

      复用聊天窗口的实现:

      1. 首先,我们需要在HTML中创建一个聊天窗口组件,用于显示聊天内容。

      ```html ```

      1. 在JavaScript中,我们需要一个方法来处理用户的输入,以及发送和接收消息。

      javascript export default { data() { return { messages: [], message: { text: '', sender: '', receiver: '', }, sendMessage() { // 发送消息的逻辑 }, }; }, methods: { sendMessage() { // 发送消息的逻辑 }, readMessage() { // 从localStorage中读取聊天内容 }, }, };

      1. 在主组件中,我们可以使用localStorage来读取和存储聊天内容。

      ```html ```

      1. 在JavaScript中,我们可以使用localStorage来读取和存储聊天内容。

      javascript export default { data() { return { messages: [], message: { text: '', sender: '', receiver: '', }, sendMessage() { // 发送消息的逻辑 }, readMessage() { // 从localStorage中读取聊天内容 }, }; }, methods: { sendMessage() { // 发送消息的逻辑 }, readMessage() { // 从localStorage中读取聊天内容 }, }, };

      注意:localStorage的存储方式是键值对形式,所以我们需要在messages数组中使用键来存储聊天内容。

      缓存聊天窗口:

      1. 我们可以使用浏览器的sessionStorage来实现聊天窗口的缓存。

      javascript export default { data() { return { messages: [], message: { text: '', sender: '', receiver: '', }, sendMessage() { // 发送消息的逻辑 }, readMessage() { // 从localStorage中读取聊天内容 return JSON.parse(localStorage.getItem('messages')); }, }; }, methods: { sendMessage() { // 发送消息的逻辑 const message = { text: '', sender: '', receiver: '', }; localStorage.setItem('messages', JSON.stringify(message)); this.readMessage(); }, readMessage() { // 从localStorage中读取聊天内容 return JSON.parse(localStorage.getItem('messages')); }, }, };

      1. 在JavaScript中,我们可以使用sessionStorage来读取和存储聊天内容。

      javascript export default { data() { return { messages: [], message: { text: '', sender: '', receiver: '', }, sendMessage() { // 发送消息的逻辑 }, readMessage() { // 从localStorage中读取聊天内容 return JSON.parse(sessionStorage.getItem('messages')); }, }; }, methods: { sendMessage() { // 发送消息的逻辑 const message = { text: '', sender: '', receiver: '', }; sessionStorage.setItem('messages', JSON.stringify(message)); this.readMessage(); }, readMessage() { // 从localStorage中读取聊天内容 return JSON.parse(sessionStorage.getItem('messages')); }, }, };

      注意:localStorage的存储方式是键值对形式,所以我们需要在messages数组中使用键来存储聊天内容。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部