最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vuejs中使用markdown服務(wù)器端渲染的示例

 更新時(shí)間:2017年11月22日 17:17:00   作者:Jelly Bool  
這篇文章主要介紹了Vuejs 中使用 markdown的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

啊哈,又是來推薦一個(gè) vuejs 的 package,miaolz123/vue-markdown。 對應(yīng)的應(yīng)用場景是:你想使用一個(gè)編輯器或者是在評論系統(tǒng)中支持 markdown。這個(gè) package 的有點(diǎn)還是挺多了,比如默認(rèn)就支持 emoji,這個(gè)就很完美啦!laravist 的新版就使用了 vue-markdown 來渲染評論。

安裝

直接使用 npm 來安裝:

npm install --save vue-markdown

使用

也是很簡單的,可以直接這樣:

import VueMarkdown from 'vue-markdown'

new Vue({
 components: {
  VueMarkdown
 }
})

或者是這樣,舉一個(gè)具象化的例子是:比如我們有一個(gè) Comment.vue 組件用來渲染評論,可以在這個(gè)組件中直接指明:

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

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

然后在渲染的時(shí)候這個(gè):

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

這里我們首先通過 comment props 傳入整個(gè) comment(這個(gè)comment其實(shí)就是一個(gè)對象) ,然后在 Comment.vue 通過 :source 來給 veu-markdown 組件傳入每個(gè)評論的 body 字段內(nèi)容,注意這里的 comment.body 在數(shù)據(jù)庫中保存的就是評論的 markdown 格式的內(nèi)容。

Vuejs服務(wù)器端渲染markdown示例

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

const server = new Koa();

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

server.use(_.get('/post/:id', 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>

總結(jié)

本文介紹的 vue-markdown 在某些應(yīng)用場景中其實(shí)超級好用,特別是對于評論系統(tǒng)想支持 markdown 這個(gè)需求來說,容易集成,優(yōu)點(diǎn)多多。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Vue.js在頁面加載時(shí)執(zhí)行某個(gè)方法

    詳解Vue.js在頁面加載時(shí)執(zhí)行某個(gè)方法

    這篇文章主要介紹了詳解Vue.js在頁面加載時(shí)執(zhí)行某個(gè)方法的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • vue3.x 使用jsplumb實(shí)現(xiàn)拖拽連線

    vue3.x 使用jsplumb實(shí)現(xiàn)拖拽連線

    這篇文章主要為大家詳細(xì)介紹了vue3.x 使用jsplumb實(shí)現(xiàn)拖拽連線,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vuex中Modules的使用詳解

    vuex中Modules的使用詳解

    本文主要介紹了vuex中Modules的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Vue3源碼分析偵聽器watch的實(shí)現(xiàn)原理

    Vue3源碼分析偵聽器watch的實(shí)現(xiàn)原理

    watch?的本質(zhì)就是觀測一個(gè)響應(yīng)式數(shù)據(jù),當(dāng)數(shù)據(jù)發(fā)生變化時(shí)通知并執(zhí)行相應(yīng)的回調(diào)函數(shù)。watch的實(shí)現(xiàn)利用了effect?和?options.scheduler?選項(xiàng),這篇文章主要介紹了Vue3源碼分析偵聽器watch的實(shí)現(xiàn)原理,需要的朋友可以參考下
    2022-08-08
  • vue.js路由mode配置之去掉url上默認(rèn)的#方法

    vue.js路由mode配置之去掉url上默認(rèn)的#方法

    今天小編就為大家分享一篇vue.js路由mode配置之去掉url上默認(rèn)的#方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • VueUse功能精簡你的dependencies

    VueUse功能精簡你的dependencies

    這篇文章主要為大家介紹了VueUse功能精簡你的dependencies實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Vue監(jiān)聽頁面變化的實(shí)現(xiàn)方法小結(jié)

    Vue監(jiān)聽頁面變化的實(shí)現(xiàn)方法小結(jié)

    在Vue.js應(yīng)用開發(fā)過程中,監(jiān)聽頁面變化是一個(gè)非常常見的需求,無論是為了響應(yīng)用戶交互、優(yōu)化性能,還是實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)邏輯,監(jiān)聽頁面變化的能力都是不可或缺的,本文將詳細(xì)介紹如何在Vue項(xiàng)目中實(shí)現(xiàn)頁面變化監(jiān)聽,需要的朋友可以參考下
    2024-10-10
  • 利用vue3仿蘋果系統(tǒng)側(cè)邊消息提示效果實(shí)例

    利用vue3仿蘋果系統(tǒng)側(cè)邊消息提示效果實(shí)例

    這篇文章主要給大家介紹了關(guān)于如何利用vue3仿蘋果系統(tǒng)側(cè)邊消息提示效果的相關(guān)資料,文中通過實(shí)例代碼以及圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue3具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-12-12
  • Vue3動(dòng)態(tài)使用KeepAlive組件的實(shí)現(xiàn)步驟

    Vue3動(dòng)態(tài)使用KeepAlive組件的實(shí)現(xiàn)步驟

    在 Vue 3 項(xiàng)目中,我們有時(shí)需要根據(jù)路由的 meta 信息來動(dòng)態(tài)決定是否使用 KeepAlive 組件,以控制組件的緩存行為,所以本文給大家介紹了Vue3動(dòng)態(tài)使用KeepAlive組件的實(shí)現(xiàn)步驟,通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-11-11
  • vue項(xiàng)目打包發(fā)布后接口報(bào)405錯(cuò)誤的解決

    vue項(xiàng)目打包發(fā)布后接口報(bào)405錯(cuò)誤的解決

    這篇文章主要介紹了vue項(xiàng)目打包發(fā)布后接口報(bào)405錯(cuò)誤的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評論

清远市| 威信县| 巴楚县| 林芝县| 长治县| 奉化市| 赤峰市| 阿拉善盟| 青浦区| 咸丰县| 高要市| 黄梅县| 辽宁省| 郑州市| 隆回县| 双桥区| 太仆寺旗| 库车县| 柳林县| 阳东县| 慈利县| 区。| 宜昌市| 南乐县| 胶南市| 科尔| 溆浦县| 滦南县| 衢州市| 平南县| 新河县| 南皮县| 白水县| 灵丘县| 浏阳市| 乐清市| 江孜县| 纳雍县| 贵定县| 鹰潭市| 平定县|