Markdown

作者: Shiki_思清 | 来源:发表于2020-11-30 20:46 被阅读0次

    markdown

    // 左侧markdown
    <textarea :ref="editor" :value="content" @input="update" />
    // 右侧 解析
    <div v-html="compiledContent"></div>
    
    data() {
      return {
        content: `# 请求
            * 问问
            * 嗯嗯
            * 让人
          `
      }
    },
    computed: {
      compiledContent() {
        return marked(this.content, {})
      }
    },
    mounted: {
      this.timer: null;
      this.bindEvent();
    },
    methods: {
      bindEvent() {
        this.$refs.editor.addEventListener('paste', async e => {
          const files = e.clipboardData.files
          
        })
      },
    
      update(e) {
        clearTimeout(this.timer)
        this.timer = setTimeout(() => {
          this.content = e.target.value
        }, 350)
      }
    }
    
    //  marked的用法
      <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
      <script>
        document.getElementById('content').innerHTML =
          marked('# Marked in the browser\n\nRendered by **marked**.');
      </script>
    

    特点:

    1. 并没有使用v-model,防抖节流

    2. 引入marked , lodash

    3. 样式直接用100vh , 满屏

    4. lodash 的防抖

    5. 定义个timer属性来做防抖,放在mounted中,不放data中,防止被添加到监控中

    6. 通过dom 监听函数 监听两个 值,“paste”和“drop”

    相关文章

      网友评论

          本文标题:Markdown

          本文链接:https://www.haomeiwen.com/subject/mtudwktx.html