首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我问导师,Vue3有没有对应工具来生成漂亮的文档? 用 Vitepress

首页 专栏 javascript 文章详情 3 我问导师,Vue3有没有对应工具来生成漂亮的文档? 用 Vitepress ?...最近有人在问:小智, Vue3 有没有对应制作文档的工具。于是,我去查了一些资料,发现,Vue3和新的Vite构建工具为我们提供了另一种快速开发静态站点的方法,那就是 Vitepress。...Vitepress是在Vite之上构建的Vue驱动的静态站点生成器。 Vitepress 被称为“ Vuepress的小弟弟”,它比同类产品具有一些优势。...虽然不打算完全取代Vuepress作为 Vue 的静态网站生成器,但 Vitepress 提供了一种轻量级的替代方案。...Vitepress通过用三个虚线(---)包围它来声明该块。 // docs/contact --- title: Contact --- # Contact ?

1.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    结合静态代码扫描来给插件间接口把把脉

    我们先认识下手管的插件间接口定义,在手管插件化框架中,各插件相互平行,插件间接口调用即插件数据传递通过框架封装的统一接口进行通信,由框架进行底层的数据封装和传递,具体实现为各插件间维护一份插件对外的插件间接口配置,编译时在框架生成对应的插件常量...[GXnNV6B.png] 插件间接口变更统计 每次编译前框架都会解析接口配置xml生成统一的插件接口常量表,那插件的变化情况我们可以从这里入手,从每次编译生成的常量定义中来找到各版本插件接口的变更情况...目前已有的插件间接口用例覆盖程度有多少呢?...7UH7jbV.png] 经过这么多版本的迭代相信应该有不少多余的水分,插件内的代码各FT通常会清理的比较及时也有一些现成的工具做冗余代码清理,但对外的接口大多担心外部兼容性及依赖问题通常清理不及时,有没有什么好的办法来梳理下...前面说到,手管编译前编译脚本会根据插件配置在框架生成相应的插件及接口常量类: [bqhNzsc.png] 因此插件接口我们可以重写visitClassDeclaration(ClassDeclarationnode

    1.3K60

    这种讲解equals和==区别的方式,全网第一!

    开始学习Java的总是被equals、==混淆,即使看了相关的技术贴子,过一段时间也很容易忘记,那么有没有一种办法使得还在“淤泥”中挣扎中的攻城狮们过目不忘呢?...它们的区别可以用下图来形象的解释: ? 暂且不管方法区。单看堆和栈。...TestClass testClass = new TestClass();,当我们创建对象TestClass()时候,就会调用TestClass的构造函数来开辟空间,将对象数据存储到堆内存中,与此同时在栈内存中生成对应的引用...==指引用是否相同, equals()指的是值是否相同 用一张具有生命力的图直观表示一下他们之间的关系: ?...abcd" ); //b为另一个引用,a跟b的对象内容是一致的 String b = new String("abcd"); //把“abcd"放在常量池中 String c = "abcd"; //从常量池中查找

    49320

    字符串常量池深入解析

    它的主要使用方法有两种: 直接使用双引号声明出来的String对象会直接存储在常量池中。 如果不是用双引号声明的String对象,可以使用String提供的intern方法。...String对象(“11”)的字符串(用equals(oject)方法确定),因为在常量池中没有,将 s3中的“11”字符串放入 String 常量池中 ,在常量池中生成一个 “11” 的对象 ;关键点是...”字符串 public void test7(){ //发现原来是在JVM启动的时候调用了一些方法,在常量池中已经生成了"java"字符串常量, String...”ja”和”va”对象,在堆里面存储的是”java”对象,String s3 = s2.intern();在字符串常量池中寻找有没有“java”对象,由于JVM的 特殊性在JVM启动的时候调用了一些方法...,在常量池中已经生成了“java”字符串常量,所以s3直接返回字符串常量池中已经存在的“java”,s4也是同样的道理,所以结果就非常的明显了 参考的部分文章 深入解析String#intern(

    44230

    JS 这次真的可以禁止常量修改了!🥊

    本文简介 ES6 推出的 const 可以定义常量。在 JS 中,常量是不可改变的。这个 “不可改变” 指的是常量存放的内存地址不变。...但我们还是有办法让常量变成真正的 “常量”。 “可变” 的常量 内存分为 栈内存(stack) 和 堆内存(heap)。 JS 的基础类型数据存在 栈内存 里;引用类型数据存在 堆内存 里。...所以用 const 创建一个对象常量时,只要不改变 引用地址 就不会报错。...举个例子 const obj = { name: '雷猴' } obj.name = '鲨鱼辣椒' console.log(obj) // 输出: {name: '鲨鱼辣椒'} 复制代码 有没有觉得上面的代码看上去并不那么...如果要冻结深层次对象,可以用递归来操作。

    2.5K40

    C语言(指针)2

    但是当我们不知道别人给我们传的地址是什么类型的时候,我们就可以放心地去用void *来接收,这就是它的作用。...那如果我们想训练一下这个变量a,让它变得强大,谁都改变不了它,有没有办法呢?...办法就是使用const修饰,当我们用const修饰了变量a后,它就拥有了常量的属性,我们知道常量是不能被改变的量。...我们也可以用例子证明这句话: 前面的文章中我们说过,创建数组的时候数组长度只能为大于0的整型常量或整型常量表达式,不能包含变量。...不过,虽然大多数的人都是守法公民,但还是有个别不听劝的,非要 “翻窗户”,那有没有办法解决呢?答案肯定是有的,因为我们不能容忍任何一个人不 “遵纪守法”。

    9010

    如何安全地打印日志

    (if条件不成立)所以,有没有办法让这些代码执行到呢?简单来说,就是能不能在release版本里面把这个DEBUG变量弄成true呢?当然可以!而且做法还非常简单。...代码很简单,用一些正则表达式就可以做到。...看起来简单,好像也与最初的“日志开关”没有什么区别,仔细分析一下: 日志开关必须是静态常量 对比一下正确的做法与最开始的日志开关,一个是一个静态变量,一个是静态常量;如果是常量的话,那么就是永远不变的,...实际上,要少写几行代码,我们可以选择复用(代码级别,比如上面的日志类),也可以选择生成(直接生成代码);在支持元编程的语言里面,生成代码是很常见的事情,比如C++的模版元编程以及ruby吹嘘的DSL能力...;这里没有那么高大上,用代码生成代码,我们直接借助编辑器帮助我们少写几行代码万事。

    1.4K30

    Java字符串最详解析

    大概是这样的: 会分配一个11长度的char数组,并在常量池分配一个由这个char数组组成的字符串,然后由m去引用这个字符串。 用n去引用常量池里边的字符串,所以和n引用的是同一个对象。...生成一个新的字符串,但内部的字符数组引用着m内部的字符数组。 同样会生成一个新的字符串,但内部的字符数组引用常量池里边的字符串内部的字符数组,意思是和u是同样的字符数组。...常量池中字符串的产生 常量池中的字符串通常是通过字面量的方式产生的,就像上述m语句那样。 并且他们是在编译的时候就准备好了,类加载的时候,顺便就在常量池生成。...大家不知有没有发现,上面的图中,u和v的字符数组没有被常量池里边的字符串引用到。...关于这个问题,常见的解决办法就是使用new String(String original)或java.io.StreamTokenizer类。

    34510

    C语言:扫雷游戏讲解

    这个作用是随机生成10个坐标的雷,后面会讲 基础的扫雷是一个9*9的格子,我们需要2个棋盘,0的棋盘用来放雷,雷的布置为1,* 的棋盘用来给用户猜, 9*9的棋盘如果选择边边会导致越界访问,所以我们需要...11*11的棋盘 创建二维数组棋盘 我们要创建一个hs.h头文件用来定义常量,还有函数的声明 在头文件 定义2个 11 的常量,用来定义二维数组 然后定义2个 9 的常量用来打印9*9的棋盘 创建字符类型...11*11 的底层棋盘,还有 11*11 用户用棋盘排查棋盘 初始化扫雷棋盘 用函数对这2个二维数组进行初始化,底层棋盘初始化为0,用户用的棋盘初始化为 * 我们要初始化11*11的数组所以要把常量的...sl,循环布置10个雷,布置完表达式为0了循环结束 随机生成1到9的随机数赋值给x和y, if进行判断这个坐标有没有雷,有雷的话不布置雷,没有雷 赋值字符1给这个坐标,sl减减 排查雷 排雷函数我们需要把...2个棋盘传过去,xs和xs2是常量9,它们是用来判断用户输入的数字有没有在1到9的范围内 如果输入2 2坐标,周围有2个雷所以要传2个棋盘,因为计算出周围有2个雷了,所以要把 字符 2 赋值2 2坐标的位置

    9910

    String类相关面试题很难?不要方,问题不大前言:一、字符串的创建:二、字符串的拼接:三、intern方法:总结:

    因为它可以直接赋值,也可以new一下用构造器生成对象,还可以用加号拼接……这些不同的方式到底有什么区别?本文是个人学习的一些总结,也希望能用最通俗的语言让大家明白这个类。...字面量赋值创建: String str1 = "hello"; String str2 = "hello"; String str3 = "world"; 这样创建字符串,首先会去常量池里找有没有这个字符串...首先在堆中生成了该字符串对象,然后去看常量池中有没有该字符串,如果有就不管了,没有就往常量池中添加一个。图解: ?...小结:这两种方式创建出来的,一个在堆中,一个在常量池中,所以它们之间用 == 比较肯定是false。 二、字符串的拼接: 字符串可以直接用加号进行拼接,但是也有几种不同的情况。 1....图解 首先new String("str")会在堆中创建str,同时添加到常量池;new String("01")也是一样的,在堆中创建01,同时添加到常量池;然后两者拼接,底层用的append方法,在堆中生成一个

    79650

    项目终于用上了插入式注解,真香!

    问题 需求似乎很简单,但真要获取自身的jar版本号还是挺麻烦的,有个比较简单但阴间的办法,就是给每一个组件都加上当前的jar版本号,写到配置文件里或者直接设置成常量,这样上报promethus时就可以直接获取到...有没有更好的解决办法呢?比如我们可不可以在gradle打包构建时拿到jar包的版本号,然后注入到每个组件中去呢?...比如我们可以给每个组件定义一个空常量,加上自定义的注解: @TrisceliVersion public static final String version = ""; 然后像lombok生成set...jar包版本号,语法树变了,最终生成的字节码也会跟着变,这样就实现了我们想在编译期给常量version注入值的愿望。...: 图片这是Test类: 图片现在我们只需要让gradle build一下,新得到的字节码中该字段就有值了: 图片这只是插入式注解处理器 功能的冰山一角,既然它可以通过修改抽象语法树来控制生成的字节码

    14010

    什么是插入式注解,一文读懂!

    问题 需求似乎很简单,但真要获取自身的jar版本号还是挺麻烦的,有个比较简单但阴间的办法,就是给每一个组件都加上当前的jar版本号,写到配置文件里或者直接设置成常量,这样上报promethus时就可以直接获取到...有没有更好的解决办法呢?比如我们可不可以在gradle打包构建时拿到jar包的版本号,然后注入到每个组件中去呢?...比如我们可以给每个组件定义一个空常量,加上自定义的注解: @TrisceliVersion public static final String version = ""; 然后像lombok生成set...jar包版本号,语法树变了,最终生成的字节码也会跟着变,这样就实现了我们想在编译期给常量version注入值的愿望。...引入刚才写好的代码包: 这是Test类: 现在我们只需要让gradle build一下,新得到的字节码中该字段就有值了: 这只是插入式注解处理器功能的冰山一角,既然它可以通过修改抽象语法树来控制生成的字节码

    41620

    C语言数组与指针详解

    在这之前先来复习下变量和常量,有的同学会问,这是为什么,我只能告诉你,你晕C指针,是因为你从刚开始有问题就没有重视,或者你忽略了问题的严重性,导致现在的情况,这也没有办法,中国的教育就不重视这一块,说实话...4、 #define PI 3.14 printf("%d\n", PI); 程序有没有问题?...老编去找客房经理,找到后问:有没有空房间啊,有的话给我一间,一哥们要开房,客房经理去查房间入住情况(内存管理),最后说,这儿有一间,它是老总的房间,你要不先用着,你用没事,你可别乱动里面的东西,你要是动的话...,估计你那哥们就被KILL掉,老板是黑社会的,不过,你用没事。...通过上面的分析可以看出,数组有很多地方很相似,其实,编译器这哥们处理数组的时候就是将其看成指针来处理的,没有办法,编译器只认地址,变量名一直都是被编译器藐视的。

    12010

    字符串常量池,看这篇就够了(三)

    写不写常量池 一般我们用Java代码创建字符串,常用方式有三 String s1 = "ziya"; String s2 = new String("ziya"); String s3 = "zi"...如果你的Java代码编译生成的字节码指令中有【ldc】,就会写入常量池,否则就不会。细节上篇文章已经讲了,不赘述。...StringTable中去找有没有这个字符串,如果有,直接返回,如果没有,往下走 2、第16行代码,基于字符串内容创建Java的String对象。...看到这里你应该清楚这背后的原因及如何解决了吧 背后的原因是大概率你的代码中的字符串都是拼接生成的,不会写入常量池,所以每次都是不断的创建,消耗内存空间 解决办法就是在拼接字符串的代码后面手动调用intern...完整学完你就可以:1、用Java写一个Java虚拟机,从而深入理解运行系统的底层细节;2、有能力自行研究Hotspot源码及其他用C语言、C++写的中间件源码;3、能够用C语言、C++写任何你感兴趣的基础算法如

    72240
    领券