>  기사  >  웹 프론트엔드  >  Vuejs는 vue-markdown을 사용하여 주석 메소드를 렌더링합니다.

Vuejs는 vue-markdown을 사용하여 주석 메소드를 렌더링합니다.

小云云
小云云원래의
2018-05-18 14:42:456424검색

댓글 시스템에서 편집기를 사용하거나 마크다운을 지원하려는 경우. 이 패키지에는 몇 가지 장점이 있습니다. 예를 들어, 기본적으로 이모티콘을 지원하는데, 이는 완벽합니다! 새로운 버전의 Laravist는 vue-markdown을 사용하여 주석을 렌더링합니다. 이 글은 주로 Vuejs에서 마크다운을 사용하는 예제를 소개합니다. 편집자는 이것이 꽤 좋다고 생각합니다. 이제 여러분에게 공유하고 참고할 수 있기를 바랍니다.

Installation

npm을 사용하여 직접 설치:

npm install --save vue-markdown

을 사용하는 것도 매우 간단합니다. 다음과 같이 직접 좋아할 수 있습니다.

import VueMarkdown from 'vue-markdown'

new Vue({
 components: {
  VueMarkdown
 }
})

또는 이와 같이 구체적인 예는 다음과 같습니다. Comment .vue 구성 요소는 주석을 렌더링하는 데 사용됩니다. 이 구성 요소에서 직접 지정할 수 있습니다.

import VueMarkdown from 'vue-markdown';
<template>
 <p>
  <vue-markdown :source="comment.body"></vue-markdown>
 </p>
</template>

export default { // ... other codes
 props:[&#39;comment&#39;],
 data(){  
  return {
   comment : this.comment
  }
 }, 
 components: {
  VueMarkdown
 }, 
// ... other codes
}

그런 다음 렌더링할 때:

<p class="comments">
 <p class="comments" v-for="comment in comments">
  <comment :comment="comment">
  </comment>
 </p>
</p>

여기서 먼저 주석 소품을 통해 전체 주석을 전달합니다(이 주석은 실제로 객체입니다). 그런 다음 Comment.vue에서:source를 사용하여 각 주석의 본문 필드 내용을 veu-markdown 구성 요소에 전달합니다. 여기에서 comment.body는 주석 내용을 데이터베이스에 마크다운 형식으로 저장합니다.

Vuejs 서버 측 렌더링 마크다운 예시

const Koa = require(&#39;koa&#39;);
const _ = require(&#39;koa-route&#39;);
const vsr = require(&#39;vue-server-renderer&#39;);
const fs = require(&#39;fs&#39;);
const indexjs = require(&#39;./component/index.js&#39;);
const Vue = require(&#39;vue&#39;);
const MD = require(&#39;markdown-it&#39;)

const server = new Koa();

const route = {
  index: (ctx, id) => {
    // 解析markdown
    const md = new MD().render(fs.readFileSync(&#39;./markdown/&#39; + id + &#39;.md&#39;, &#39;utf-8&#39;));
    // vue插入html代码
    const app = new Vue({
      data: {
        main: md
      },
      template: `
      <p>
        <p class="main" v-html="main"></p>
      </p>`
    });
    // 其他变量设置
    const context = {
      htmlTitle: id
    };
    // 加载模板html文件
    const renderer = vsr.createRenderer({
      template: fs.readFileSync(&#39;./template/index.template.html&#39;, &#39;utf-8&#39;)
    });
    // 渲染
    renderer.renderToString(app, context, (err, html) => {
      if (err) {
        ctx.response.status = 500;
      } else {
        ctx.response.body = html;
      }
    })
  }
};

server.use(_.get(&#39;/post/:id&#39;, route.index));
server.listen(8080);
<!DOCTYPE html>
<html lang="CH-ZN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>{{htmlTitle}}</title>
</head>

<body>
  <!--vue-ssr-outlet-->
</body>

</html>

요약

이 글에서 소개한 vue-markdown은 실제로 일부 애플리케이션 시나리오, 특히 마크다운을 지원하려는 댓글 시스템에서 사용하기 매우 쉽습니다. 통합이 쉽고 많은 장점이 있습니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

관련 권장 사항:

vue.js 렌더링 및 루프 지식 설명

angularjs 렌더링 구현을 위한 드롭다운 상자 html

브라우저 렌더링 페이지 방법 요약

위 내용은 Vuejs는 vue-markdown을 사용하여 주석 메소드를 렌더링합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.