热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Vue3:显示markdown文档:vue大纲树

本文主要分享【vue大纲树】,技术文章【Vue3:显示markdown文档】为【空城机】投稿,如果你遇到#Vue.Js,#前端工具和插件相关问题,本文相关知识或能到你。vue大纲树序

本文主要分享【vue 大纲树】,技术文章【Vue3:显示 markdown 文档】为【空城机】投稿,如果你遇到# Vue.Js,# 前端工具和插件相关问题,本文相关知识或能到你。

vue 大纲树

之前我曾经制作过个人的UI组件库,当时也在npm上发布了,并且也将UI组件展示在自己的gitee页面上面,可访问地址:http://wzckongchengji.gitee.io/kongchengji/#/ 。

参考文章: 《在gitee码云上搭建一个网站》

不过当时我使用的是Vue2,现在因为新学了Vue3,准备使用Vue3重写一遍这些组件。

第一步的话,先解决markdownhtml的问题吧。组件的说明文件是markdown编辑的,在网页上显示的话需要转换成html

v-md-editor

以前我使用的是vue-markdown-loader库,现在准备使用v-md-editor库,因为这是明确说明能够在Vue3中使用。

vue-markdown-loader

vue2中配置vue-markdown-loader时,需要在vue.config.js中配置:

module.exports={
   
    chainWebpack: config => {
   
        config.module
          .rule('md')
          .test(/\.md$/)
          .use('vue-loader')
          .loader('vue-loader')
          .end()
          .use('vue-markdown-loader')
          .loader('vue-markdown-loader/lib/markdown-compiler')
          .options({
   
            raw: true
          })
    },
}
v-md-editor

v-md-editor中文官网:https://code-farmer-i.github.io/vue-markdown-editor/zh/

v-md-editor分为4种组件:

轻量版编辑器进阶版编辑器预览组件html预览组件

考虑了一下,对UI组件库页面,我只需要展示markdown解析出的html页面即可,所以使用的组件应该是预览组件

安装

创建一个vue3vite项目,创建命令:yarn create vite my-element-ui --template vue-ts

安装命令:

yarn add @kangc/v-md-editor@next

Vue3:显示 markdown 文档:vue 大纲树

快速使用

main.ts中导入VMdPreview预览组件

// 引入v-md-editor组件
import VMdPreview from '@kangc/v-md-editor/lib/preview';
import vuepressTheme from '@kangc/v-md-editor/lib/theme/vuepress.js';
import '@kangc/v-md-editor/lib/style/base-editor.css';
import '@kangc/v-md-editor/lib/theme/style/vuepress.css';

VMdPreview.use(vuepressTheme);

const app = createApp(App)
app.use(VMdPreview)
app.use(router)  // 如果不使用vue-router可以注释掉
app.mount('#app')

这里项目中如果使用了typescript,此时使用import VMdPreview from '@kangc/v-md-editor/lib/preview';导入预览模块可能会出现红色波浪线报错。

Vue3:显示 markdown 文档:vue 大纲树

我尝试了一下安装@types/kangc__v-md-editor,不过失败了。那么解决方案只能在main.ts的同级目录中的vite-env.d.ts中添加declare module声明,这样就不会有报错了。

declare module '@kangc/v-md-editor/lib/preview'

declare module '@kangc/v-md-editor/lib/theme/vuepress.js'

接下来创建一个toHtml.vue组件,在内部调用v-md-preview预览组件,数据通过:text传入。

测试:


   
<template>
    <div class="a">v-md-editor预览组件测试:
     div> <v-md-preview :text="text">
      v-md-preview> 
       template> <script setup lang="ts"> import {
         ref, reactive, onMounted } from "vue"; const text = ref(`# 序 开始预览组件的使用 * 看 * 写 * 运行`) 
        script> 

效果:

Vue3:显示 markdown 文档:vue 大纲树

可以看到当前已经将markdown的语句转换成了html在界面上显示出来了。

那么实际创建一个.md文件,将内容引入使用看看。

Vue3:显示 markdown 文档:vue 大纲树

router/index.ts中直接引入md文件出现错误,语句:import markdownTxt from '@/assets/markdown/preview.md'

Vue3:显示 markdown 文档:vue 大纲树

这里vite中引入静态资源如md等文件,需要在末尾加上?raw

就像这样:import markdownTxt from '@/assets/markdown/preview.md?raw'

可参考Vite静态资源处理:https://vitejs.cn/guide/assets.html

这样引入进来的就是markdown文件中的内容了,然后通过props传递到toHtml.vue组件内

import markdownTxt from '@/assets/markdown/preview.md?raw'

const routes: RouteRecordRaw[] = [
    {
    path: '/toHtml', component: toHtml, props: {
    markdownTxt: markdownTxt } }
]

组件中通过defineProps接收数据

<template>
    <div class="a">v-md-editor预览组件测试:
     div> <v-md-preview :text="markdownTxt">
      v-md-preview> 
       template> <script setup lang="ts"> import {
         ref, reactive, onMounted, useAttrs } from "vue"; import {
         useRouter } from "vue-router"; // 获取props let props = defineProps({
         markdownTxt: String }) 
        script> 

效果:

Vue3:显示 markdown 文档:vue 大纲树


通过以上步骤,就可以将markdown文件转换成页面中可显示的html了,这也是在个人博客网站开发中经常会用到的步骤

本文《Vue3:显示 markdown 文档》版权归空城机所有,引用Vue3:显示 markdown 文档需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • 本文介绍了 Vue 开发的入门指南,重点讲解了开发环境的配置与项目的基本搭建。推荐使用 WebStorm 作为 IDE,其下载地址为 。安装时请选择适合您操作系统的版本,并通过 获取激活码。WebStorm 是前端开发者的理想选择,提供了丰富的功能和强大的代码编辑能力。 ... [详细]
  • 本文详细介绍了批处理技术的基本概念及其在实际应用中的重要性。首先,对简单的批处理内部命令进行了概述,重点讲解了Echo命令的功能,包括如何打开或关闭回显功能以及显示消息。如果没有指定任何参数,Echo命令会显示当前的回显设置。此外,文章还探讨了批处理技术在自动化任务执行、系统管理等领域的广泛应用,为读者提供了丰富的实践案例和技术指导。 ... [详细]
  • Vue应用预渲染技术详解与实践 ... [详细]
  • 本文详细介绍了如何安全地手动卸载Exchange Server 2003,以确保系统的稳定性和数据的完整性。根据微软官方支持文档(https://support.microsoft.com/kb833396/zh-cn),在进行卸载操作前,需要特别注意备份重要数据,并遵循一系列严格的步骤,以避免对现有网络环境造成不利影响。此外,文章还提供了详细的故障排除指南,帮助管理员在遇到问题时能够迅速解决,确保整个卸载过程顺利进行。 ... [详细]
  • 在GitHub上克隆vue-element-admin项目时遇到依赖安装错误
    在 GitHub 上克隆 vue-element-admin 项目后,使用 `npm install` 安装依赖时遇到了未知的 Git 错误。具体错误信息为 `npm ERR! code 128`,提示命令执行失败。这可能是由于网络问题、Git 配置不正确或某些依赖包的仓库地址无效导致的。建议检查网络连接、更新 Git 版本并确保所有依赖项的 URL 正确无误。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 基于Linux系统的Kickstart自动化服务器部署方案
    本文针对企业需求,提出了一种基于Linux系统的Kickstart自动化服务器部署方案。该方案旨在通过无盘批量安装操作系统,提高企业IT基础设施的部署效率。Kickstart是一种利用Anaconda工具实现服务器自动化安装的技术,能够显著简化和加速操作系统的安装过程。通过详细的实施规划,本文介绍了Kickstart的工作原理及其在实际部署中的应用,为企业提供了高效的自动化部署解决方案。 ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 虚拟机网络设置与数据库远程连接优化指南
    本文针对个人计算机上虚拟机网络配置与数据库远程连接的问题,提供了一套详细的优化指南。在探讨远程数据库访问前,需确保网络配置正确,特别是桥接模式的设置。通过合理的网络配置,可以有效解决因虚拟机或网络问题导致的连接失败,提升远程访问的稳定性和效率。 ... [详细]
  • 深入解析 Vue 中的 Axios 请求库
    本文深入探讨了 Vue 中的 Axios 请求库,详细解析了其核心功能与使用方法。Axios 是一个基于 Promise 的 HTTP 客户端,支持浏览器和 Node.js 环境。文章首先介绍了 Axios 的基本概念,随后通过具体示例展示了如何在 Vue 项目中集成和使用 Axios 进行数据请求。无论你是初学者还是有经验的开发者,本文都能为你解决 Vue.js 相关问题提供有价值的参考。 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • 本文探讨了如何通过编程手段在Linux系统中禁用硬件预取功能。基于Intel® Core™微架构的应用性能优化需求,文章详细介绍了相关配置方法和代码实现,旨在帮助开发人员有效控制硬件预取行为,提升应用程序的运行效率。 ... [详细]
  • Node.js 配置文件管理方法详解与最佳实践
    本文详细介绍了 Node.js 中配置文件管理的方法与最佳实践,涵盖常见的配置文件格式及其优缺点,并提供了多种实用技巧和示例代码,帮助开发者高效地管理和维护项目配置,具有较高的参考价值。 ... [详细]
  • 在探讨C语言编程文本编辑器的最佳选择与专业推荐时,本文将引导读者构建一个基础的文本编辑器程序。该程序不仅能够打开并显示文本文件的内容及其路径,还集成了菜单和工具栏功能,为用户提供更加便捷的操作体验。通过本案例的学习,读者可以深入了解文本编辑器的核心实现机制。 ... [详细]
author-avatar
陈柏菱皇君怡惠
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有