当前位置: 首页 > news >正文

【Vue 开发实战】实战篇 # 45:如何构建可交互的组件文档让代码高亮的显示在页面

说明

【Vue 开发实战】学习笔记。

效果

要实现这个代码的显示

在这里插入图片描述

使用 raw-loader 实现代码输出到页面

https://github.com/webpack-contrib/raw-loader

npm install raw-loader --save-dev

我们不走 webpack 的配置,使用下面一种方式

import chartCode from "!!raw-loader!@/components/Chart.vue";

在这里插入图片描述
我们在分析页添加 Chart.vue 的代码

<template>
    <div>
        {{$t('message')["app.dashboard.analysis.timeLabel"]}}
        <a-date-picker/>
        <Chart :option="chartOption" style="width: 600px; height: 400px;"/>
        {{chartCode}}
    </div>
</template>

<script>
import Chart from "@/components/Chart.vue";
import request from "@/utils/request.js";
import chartCode from "!!raw-loader!@/components/Chart.vue";

export default {
    data() {
        return {
            chartOption: {},
            chartCode
        }
    },
    components: {
        Chart
    },
    mounted() {
        this.getChartData();
        this.interval = setInterval(() => {
            this.getChartData();
        }, 3000);
    },
    beforeDestroy() {
        clearInterval(this.interval);
    },
    methods: {
        getChartData() {
            request({
                url: "/api/dashboard/chart",
                method: "get",
                params: {
                    id: "kaimo313"
                }
            }).then(response => {
                this.chartOption = {
                    title: {
                        text: 'ECharts 入门示例'
                    },
                    tooltip: {},
                    legend: {
                        data: ['销量']
                    },
                    xAxis: {
                        data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
                    },
                    yAxis: {},
                    series: [
                        {
                            name: '销量',
                            type: 'bar',
                            data: response.data
                        }
                    ]
                }
            })
        }
    },
};
</script>

<style></style>

在这里插入图片描述
我们可以看到效果已经出来了,不过没有样式

使用 vue-highlightjs 做代码样式处理

https://github.com/metachris/vue-highlightjs

npm install --save vue-highlightjs

main.js 里添加下面代码:主题可以自己查找:https://github.com/highlightjs/highlight.js/blob/main/src/styles,比如这里我使用了 monokai-sublime 的主题

import VueHighlightJS from 'vue-highlightjs';
import 'highlight.js/styles/monokai-sublime.css';

Vue.use(VueHighlightJS);

分析页添加这个高亮的显示

<pre v-highlightjs><code class="html">{{chartCode}}</code></pre>

效果如下:

在这里插入图片描述

相关文章:

  • m分别通过matlab和FPGA实现基于高阶循环谱的信号载波调制识别(四阶循环累量)仿真(包括仿真录像,matlab工程,fpga工程)
  • 前端知识体系
  • html5 图像标签
  • Python02--python中的缩进,注释和模块
  • STM32CUBEIDE(14)----外部中断EXTI
  • 项目管理PMP要点
  • Element-UI+vue实现登录表单
  • vmware安装centos7并制作多副本
  • hbase加kerberos 后报错hbase master 起不来
  • iPad 使用技巧:虚拟键盘与实体键盘
  • 皮亚杰将儿童的道德发展分为四个阶段
  • 2021.09青少年软件编程(Python)等级考试试卷(五级)
  • JAVA毕设项目足球信息发布平台(java+VUE+Mybatis+Maven+Mysql)
  • Nature子刊:一个从大脑结构中识别阿尔茨海默病维度表征的深度学习框架
  • 循环神经网络(Recurrent Neural Network)详解
  • CAP 一致性协议及应用解析
  • ES6系统学习----从Apollo Client看解构赋值
  • JavaScript实现分页效果
  • js继承的实现方法
  • JS专题之继承
  • markdown编辑器简评
  • spring boot 整合mybatis 无法输出sql的问题
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • ubuntu 下nginx安装 并支持https协议
  • webpack项目中使用grunt监听文件变动自动打包编译
  • windows下使用nginx调试简介
  • 分布式事物理论与实践
  • 猴子数据域名防封接口降低小说被封的风险
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 聊聊flink的BlobWriter
  • 无服务器化是企业 IT 架构的未来吗?
  • 用jquery写贪吃蛇
  • #### go map 底层结构 ####
  • #etcd#安装时出错
  • (2)MFC+openGL单文档框架glFrame
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (六)vue-router+UI组件库
  • (七)Knockout 创建自定义绑定
  • (生成器)yield与(迭代器)generator
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET 的程序集加载上下文
  • .Net中的设计模式——Factory Method模式
  • .Net组件程序设计之线程、并发管理(一)
  • [20161214]如何确定dbid.txt
  • [Android Studio] 开发Java 程序
  • [BZOJ] 2427: [HAOI2010]软件安装
  • [git]git命令如何取消先前的配置
  • [HDU 3555] Bomb [数位DP]
  • [ios] IOS文件操作的两种方式:NSFileManager操作和流操作【转】
  • [iOS]Win8下iTunes无法连接iPhone版本的解决方法
  • [java/jdbc]插入数据时获取自增长主键的值
  • [json]定义、读写
  • [LeeCode]-Divide Two Integers 不用乘除的除法运算