如何使用 markdown 结合组件 props 实现可控制的响应式 ui组件库 文档

23 篇文章 0 订阅
9 篇文章 1 订阅

一、此功能的应用场景

ui组件库文档如何实现,读到此文章,我相信大家都会略有接触,那么首先我们要考虑的一个问题就是,组件库文档是如何实现的呢?总的来说基本上我们使用的这些组件库大体的文档方式都是模块、props属性介绍这些。主流的方式是 markdown 文档结合各类语言去实现一套组件库文档,那么现在我想实现一套可以让用户结合我的props属性,可以再我的页面上进行操作效果展示,该如何实现呢?
在这里插入图片描述
参考 TDesign 如何在 markdown 实现这个示例的功能?

二、实现思路

  1. 首先要考虑的肯定是将这个示例封装成一个组件
  2. 左侧展示,右侧分为 switch(单选),select(选择)两个模块,当我们变动右侧的数据时,会自动将对应的属性等同步到右侧展示区域
  3. 获取组件的所有 props 属性并暴露,抓取方式(暂定:手写 json 文件,手动引入)
  4. 左侧塞入的组件采用动态组件实现对应的功能

三、vue-press 实现方式

首先来看我的 vue-press 目录,markdown可以自动识别对应components目录下的.vue文件,我们主要的也是讲代码内容,里面的东西是如何实现的
在这里插入图片描述
其实主要的就是三个文件

3.1、Button.vue(对应的组件)

<template>
  <button :style="`color:${color}`" :disabled="disabled" @click="onClick">click me</button>
</template>

<script >
export default {
  name: 'historyData',
  props: ['color', 'disabled'],
  watch: {
    color (val) {

      console.log(val)
    },
    disabled (val) {
      console.log(val)
    }
  },
  methods: {
    onClick () {
      console.log(123)
    }
  }
}
</script>

<style scoped>
</style>

3.2、IsSet.vue


<template>
  <div>
    <!-- 动态组件  v-bind直接挂载所有点击的属性直接传递 -->
    <component :is="componentName" v-bind="attrObj"></component>
    <div v-for="item in list" :key="item.name">
      <div v-if="item.type=='radio'">
        <span @click="isRadioClick(item.name,true)"></span>
        <span @click="isRadioClick(item.name,false)"></span>
      </div>
      <div v-if="item.type=='select'">
        <span @click="isSelectClick(item.name,e)" style="margin-left:10px" v-for="(e,i) in item.list" :key="i">
          {{e}}
        </span>
      </div>
    </div>
  </div>
</template>

<script >
// 手动引入 buttonJSON 后续可以改成 ajax 引入
import buttonJSON from './Button.json'
export default {
  name: 'IsSet',
  props: ['componentName'],
  data () {
    return {
      // list 遍历数据
      list: buttonJSON,
      // attrObj对象
      attrObj: {

      }
    }
  },
  methods: {
    // 点击单选项
    isRadioClick (name, val) {
      this.$set(this.attrObj, name, val)
    },
    // 点击select框选项
    isSelectClick (name, val) {
      this.$set(this.attrObj, name, val)
    }
  }

}
</script>

<style scoped>
</style>


3.3、Button.json

[
  {
    "name": "disabled", // 属性
    "type": "radio", // 类型是switch还是select
    "value": false // 默认值
  },
  {
    "name": "color", // 属性
    "type": "select", // 类型是switch还是select
    "value": "", // 默认值
    "list": ["red","blue","green"] // list 数组对象
  }
]

3.4、README.md

# Hello VuePress 
<IsSet  componentName="Button"></IsSet>

最后实现的代码 直接在 markdown 里面书写 IsSet 组件

在这里插入图片描述
简单的实现效果也就是如此

结语

✨ 每天创作一点点
✨ 开心快乐一整天
✨ 点赞关注加收藏
✨ 美好一天又一天

铁铁们 感谢支持 我需要你们的三连 👍👍👍
请添加图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要查看Markdown编辑器组件文档和源代码,您可以按照以下步骤进行操作: 1. 确定您使用Markdown编辑器组件的名称。这可能是您在项目中安装的第三方,如`vue-simplemde`、`vue-markdown-editor`等。 2. 打开您的项目文件夹,并导航到Markdown编辑器组件所在的位置。 3. 在Markdown编辑器组件所在的文件夹中,查找是否存在一个名为`README.md`或`docs`的文件夹。这些通常是组件文档文件或文档文件夹。 4. 如果找到了`README.md`文件或`docs`文件夹,可以使用文本编辑器打开`README.md`文件或浏览`docs`文件夹中的HTML文件来查看组件文档。在文档中,您可以找到有关组件使用方法、API参考和示例代码等信息。 5. 如果无法找到文档文件或者需要查看源代码,您可以继续查找组件的源文件。源文件通常是以`.vue`或`.js`扩展名结尾的文件。您可以使用文本编辑器打开这些源文件,以查看其中的代码。 如果您无法找到相关的文档或源代码文件,建议您通过以下途径获取更多信息: - 访问组件的官方网站或GitHub页面,以查找更详细的文档和示例。 - 在搜索引擎中搜索组件的名称加上关键词"documentation"或"github",以查找其他开发者或用户分享的相关资源。 - 参考组件的npm页面(如果是通过npm安装的),以获取更多的文档和链接。 总之,查看Markdown编辑器组件文档和源代码需要通过具体的组件名称和相关资源来进行。以上提供的步骤和建议可以帮助您开始查找所需的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

归来巨星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值