成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在 Vue 中解析和渲染 Markdown

開(kāi)發(fā) 前端
Markdown 在我們程序界也是一個(gè)必備的技能。我們可以使用 makrdown來(lái)渲染文本,它實(shí)際上是一種更快的寫(xiě)作方式,因?yàn)樗鼘W(xué)習(xí)成本很低,不需要掌握很多知識(shí)就可以開(kāi)始。

[[423406]]

HTML是超文本標(biāo)記語(yǔ)言的縮寫(xiě),可能是當(dāng)今網(wǎng)絡(luò)上使用最多的標(biāo)記語(yǔ)言。Markdown 在我們程序界也是一個(gè)必備的技能。我們可以使用 makrdown來(lái)渲染文本,它實(shí)際上是一種更快的寫(xiě)作方式,因?yàn)樗鼘W(xué)習(xí)成本很低,不需要掌握很多知識(shí)就可以開(kāi)始。如果你的想寫(xiě)博客,甚至想作為技術(shù)作家寫(xiě)作時(shí),Markdown 是你首先的寫(xiě)作工具。

本文主要介紹如果在 Vue 中使用 Markdown,廢話說(shuō)了很多了,我們就這開(kāi)始按摩。

為什么使用 Marked.js 庫(kù)

Vue 沒(méi)有像React 那么多 MD 的插件。如 markdown-it、Remark.js、marked.js。希望在未來(lái),會(huì)有更多好用的庫(kù)來(lái)支持我們的 Vue ,經(jīng)過(guò)一番調(diào)研,我選擇了marked.js,因?yàn)樗男切亲疃?,bug 少。

創(chuàng)建項(xiàng)目

我們使用 vue-cli 來(lái)創(chuàng)建項(xiàng)目,運(yùn)行如下命令:

  1. vue create marked-example 

這里我們選擇最簡(jiǎn)單的 Vue2 模板創(chuàng)建項(xiàng)目,創(chuàng)建完后的項(xiàng)目結(jié)構(gòu)如下:

  1. +-- src/i 
  2. |   +-- assets/ 
  3. |   +-- components 
  4. |       +-- HelloWorld.vue 
  5. |       +-- App.vue 
  6. |   +-- main.js 

現(xiàn)在我們?cè)?MD 語(yǔ)法寫(xiě)個(gè)標(biāo)題

  1. <template> 
  2.   <div> 
  3.    {{ markdown }} 
  4.   </div> 
  5. </template> 
  6. <script> 
  7. export default { 
  8.   name"App"
  9.   data() { 
  10.     return { 
  11.       markdown: " # hello world "
  12.     }; 
  13.   }, 
  14. }; 
  15. </script> 
  16. <style> 
  17. #app { 
  18.   font-family: Avenir, Helvetica, Arial, sans-serif; 
  19.   -webkit-font-smoothing: antialiased; 
  20.   -moz-osx-font-smoothing: grayscale; 
  21.   text-align: center; 
  22.   color: #2c3e50; 
  23.   margin-top: 60px; 
  24. </style> 

運(yùn)行:

基于上面的代碼,我們希望# hello world MD 語(yǔ)法能在 Vue 渲染成標(biāo)題。要怎么做呢,這就需要借助 Marked.js 庫(kù)。

安裝 Marked.jsMarked 或 marked.js 是一個(gè)低級(jí)別的編譯器,幫助我們將 Markdowns 轉(zhuǎn)換成HTML。安裝一波試試水:

  1. npm install marked 

然后,在 app.vue 中引入:

  1. import marked from 'marked'

渲染 markdown

渲染方法很簡(jiǎn)單就是把我們的文本傳入 marked,結(jié)果返回是帶了標(biāo)簽的文本內(nèi)容,我們?cè)谟?v-html 渲染即可。

  1. <template> 
  2. <!-- {{ markdown }} --> 
  3.   <textarea v-model="markdown"></textarea> 
  4.   <div v-html="markdownToHtml"></div> 
  5.  
  6. </template> 
  7. <script> 
  8. import marked from 'marked'
  9. export default { 
  10.   name'App'
  11.  data(){ 
  12.    return { 
  13.      markdown:  "# Hello World"
  14.    }; 
  15.  }, 
  16.  computed: { 
  17.    markdownToHtml(){ 
  18.      return marked(this.markdown); 
  19.    } 
  20.  } 
  21. </script> 
  22. <style> 
  23. #app { 
  24.   font-family: Avenir, Helvetica, Arial, sans-serif; 
  25.   -webkit-font-smoothing: antialiased; 
  26.   -moz-osx-font-smoothing: grayscale; 
  27.   text-align: center; 
  28.   color: #2c3e50; 
  29.   margin-top: 60px; 
  30. </style> 

這里我們多寫(xiě)了一個(gè) textarea 標(biāo)簽,然后用了計(jì)算屬性來(lái)實(shí)時(shí)的渲染 markdowns。運(yùn)行后的結(jié)果如下

然后,多輸入 一些 MD 語(yǔ)法驗(yàn)證一下:

全局引入

當(dāng)我們不想每個(gè)組件都 引入一次時(shí),就可以聲明成全局的。怎么做?

實(shí)現(xiàn) marked 庫(kù)全局化的方法是使用 Mixins。Mixins 只是Vue組件中可重復(fù)使用的功能的一個(gè)分布。

重構(gòu)一下我們的 main.js 代碼,如下所示:

  1. import {createApp} from 'vue'
  2. import App from './App.vue'
  3. import marked from 'marked'
  4. const markedMixin = { 
  5.     methods: { 
  6.          md: function (input) { 
  7.             return marked (input); 
  8.         }, 
  9.     }, 
  10. }; 
  11.  
  12.  
  13.  
  14. createApp(App).mixin(markedMixin).mount('#app'

當(dāng)想轉(zhuǎn)換 md時(shí),直接在組件中調(diào)用 this.md 就可以將 md 轉(zhuǎn)成 html 了。

~完,本文內(nèi)容很簡(jiǎn)單,因?yàn)樽罱灿玫筋愃频墓δ?,搜索這個(gè)庫(kù),所以就分享一下,我們下期再見(jiàn)!

作者:Dmitri Pavlutin 譯者:前端小智

來(lái)源:blog.openreplay 原文:https://blog.openreplay.com/how-parse-and-render-markdown-in-vuejs

【編輯推薦】

 

責(zé)任編輯:姜華 來(lái)源: 大遷世界
相關(guān)推薦

2021-06-01 21:22:44

解析域名編程

2021-12-12 18:31:35

VNode組件Vue3

2024-11-15 10:03:43

應(yīng)用模板Vue

2023-01-15 17:11:44

Rust

2023-03-14 16:44:20

Linuxhtop

2023-11-07 18:03:31

Vim復(fù)制粘貼

2020-06-30 08:55:29

Vim文本編輯器Linux

2021-08-30 07:50:42

腳本語(yǔ)言命令行

2015-09-24 10:51:12

Numix圖標(biāo)Ubuntu

2020-10-29 09:40:21

PostgreSQLpgAdmin數(shù)據(jù)庫(kù)

2023-06-27 09:00:00

2023-07-05 16:45:30

WiresharkLinux

2022-11-25 10:19:48

2020-01-14 14:50:04

Windows 10畫(huà)圖Windows

2023-11-02 08:01:50

NPOI開(kāi)源

2019-03-18 13:00:15

LinuxFish ShellBash

2023-06-15 13:01:07

JavaPythonJavaScript

2018-10-19 10:22:35

WindowsWindows 10粘滯便箋

2020-01-02 15:40:23

Windows 10配置離線地圖

2020-10-27 09:37:43

PyTorchTensorFlow機(jī)器學(xué)習(xí)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 九九热最新地址 | 亚洲国产欧美在线人成 | 国产精品不卡 | 国产一区视频在线 | 日韩中文字幕在线不卡 | 色婷婷综合在线观看 | www312aⅴ欧美在线看 | 亚洲精品一区二区在线观看 | 国产精品国色综合久久 | 国产成人免费视频 | 免费99精品国产自在在线 | 国产日韩一区二区三区 | 成人综合视频在线观看 | 国产成人高清在线观看 | 91免费观看在线 | 亚洲精品国产电影 | 2019精品手机国产品在线 | 狠狠操婷婷 | 成人一区在线观看 | 欧美一级欧美一级在线播放 | 日日操夜夜摸 | 黄色免费在线观看 | sese视频在线观看 | 伊人伊成久久人综合网站 | 欧美精品二区三区 | 美女久久久 | 99re6热在线精品视频播放 | 午夜影院操 | 亚洲国产精品一区在线观看 | 福利网址 | 国产午夜精品理论片a大结局 | 欧美性a视频 | 国产精品一区二区三区四区 | 亚洲精品免费视频 | 亚洲天天| 免费久久久久久 | 玖玖精品视频 | 日本亚洲欧美 | 精品国产久 | 欧美日韩久久精品 | 在线免费观看a级片 |