javascript - 在使用 Quill.js 保存和重新加载数据时,我有哪些选择?

标签 javascript node.js vue.js quill

我正在制作一个笔记应用程序,它处于早期原型(prototype)设计阶段,所以我只想编写一些对自己有用的东西。 我的文本编辑器是使用 Quill 构建的,我使用 Vue 来构建整个应用程序。目前,我没有后端,所以没有 server.js。 我希望我的应用程序能够保存我放入编辑器中的信息,并在重建应用程序时重新加载信息。

我检查了 Quill 提供的自动保存选项 here 但我不确定如何处理 $.post 以及将其发布到哪里。

我可以简单地将其发布到本地 .json 文件吗?

就我而言,最好保存什么?该示例正在记录更改,我应该如何处理更改?

对于我的问题不够清晰,我事先表示歉意,因为我不知道我应该问什么才能实现我想要的目标。 如有任何建议,我们将不胜感激。

最佳答案

所以,如果我没理解错的话,你问的是如何在没有服务器的情况下实现quilljs的自动保存功能。但是,您已经回答了自己的问题。

  • 一种简单的方法是将文档保存到本地 json 文件中。但我不知道你是否可以使用js来做到这一点。
  • 另一种方法是将内容保存到浏览器的本地存储中,并在每次加载应用程序时加载数据。

    var Delta = Quill.import('delta');
    var quill = new Quill('#editor-container', {
      modules: {
        toolbar: true
      },
      placeholder: 'Compose an epic...',
      theme: 'snow'
    });
    
    // Store accumulated changes
    var change = new Delta();
    quill.on('text-change', function(delta) {
      change = change.compose(delta);
    });
    
    // Save periodically
    setInterval(function() {
      if (change.length() > 0) {
        console.log('Saving changes', change);
        // Save the entire updated text to localStorage
        const data = JSON.stringify(quill.getContents())
        localStorage.setItem('storedText', data);
        change = new Delta();
      }
    }, 5*1000);
    
    // Check for unsaved data
    window.onbeforeunload = function() {
      if (change.length() > 0) {
        return 'There are unsaved changes. Are you sure you want to leave?';
      }
    }
    

然后在 vue 组件的 mounted() 中,使用以下代码获取保存的数据:

const data = JSON.parse(localStorage.getItem('storedText'));

关于javascript - 在使用 Quill.js 保存和重新加载数据时,我有哪些选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56659815/

相关文章:

javascript - 如何在 IOS Action App Extension 中调试 JavaScript?

javascript - Fabric js loadFromJSON 问题

php - 获取最近一小时的记录,如果最近一小时没有记录,则获取最近 20 条记录

javascript - AXIOS之后更新静态吗? VUEJS

javascript - VueJS @click 带 anchor 标签

javascript - 在 if block 中使用 await 时,'await' 对此表达式的类型没有影响

php - 注销后防止后退按钮

node.js - 如何在相对路径上创建多个 Node.js websocket

javascript - Firebase 数据库监听器被明显非阻塞循环阻止

javascript - 使用动态 css 属性的 Vue 列表渲染