Vue3+element-plus+vite 组件的二次封装-- 添加vitePress,为组件库编写使用文档,组件库文档,vitepress文档

本人是一个web前端开发工程师,主要是vue框架,整理了一些Vue常用的技术,一方面是分享,一方面是做总结,今后也会一直更新,有好建议的同学欢迎评论区分享 ;-)

序号文章
0组件库展示
1通过JSON配置–头部搜索条件的封装组件
2通过JSON配置–表单Table的封装组件
3页脚的封装组件
4通过JSON配置–Form表单的封装组件
5生成npm组件库
6发布到npm
7vitest为组件库添加单元测试
8vuepress为组件库生成文档
9通过github或者gitee pages将组件库文档发布到线上,免费!
10源码地址

# 封面图片

组件库开发流程


Vue组件库专栏会按顺序执行一下流程,不断完善组件库开发流程

  1. Vue3+element-plus+vite 组件的二次封装,封装了头部的搜索条件栏,tabel栏,分页栏,form表单,都设置成了通过json可配置项,方便复用;
  2. 封装好了就开始打包,并且进行本地测试;
  3. 组件库发布到npm;
  4. 添加vitest单元测试框架;
  5. 添加vuepress文档。(本章相关)

简介


VitePress 是 VuePress 小兄弟, 基于 Vite构建。
一个以 Vue 驱动的主题系统的简约静态网站生成工具,和一个为编写技术文档而优化的默认主题。它是为了支持 Vue 子项目的文档需求而创建的。

先上图...
在这里插入图片描述

1. 安装


官网:点击此处

# 创建并进入一个目录
mkdir vitepress-starter && cd vitepress-starter

# 初始化
npm init -y

# 安装依赖
npm i vitepress -d

# 新建目录
mkdir docs

这边手动创建文件,避免文件格式导致的乱码问题…
在docs目录下创建index.md文件当做主页文件

在这里插入图片描述

npm run docs:dev

运行后自动生成如下目录结构
在这里插入图片描述

2. 初始化配置文件


这里只是初始化配置,必须要有数据,这边就初始化一些
在docs/.vitepress文件中新建配置文件config.js
在这里插入图片描述

module.exports = {
  title: 'Hello VitePress',
  description: 'Just playing around.'
}

3. 完整版项目结构


  • .vitepress 是运行npm run docs:dev 自动生成的,其中的config.js 要手动生成,theme是自定义主题。
  • config.js 主要是配置文件
  • guide 存放的是指导页面
  • public 用来存放一些静态资源文件
  • team 存放的是团队页面
  • index.md 首页页面,这边依样画葫芦,改改配置就满足我个人的需求了…
    在这里插入图片描述

3.1 theme主题(非必须)

theme 目录结构如下

在这里插入图片描述

3.1.1 Layout.vue
<!--
 * @Author: Penk
 * @LastEditors: Penk
 * @LastEditTime: 2022-12-29 12:43:54
 * @FilePath: \penk-ui\docs\.vitepress\theme\Layout.vue
 * @Desc: 这边的配置是用来修改布局的,通过插槽的形式...
 * @email: 492934056@qq.com
-->
<script setup>
import DefaultTheme from 'vitepress/theme'

const { Layout } = DefaultTheme
</script>

<template>
  <Layout>
    <template #aside-outline-before>
      目录
    </template>
  </Layout>
</template>
3.1.2 index.js
/*
 * @Author: Penk
 * @LastEditors: Penk
 * @LastEditTime: 2022-12-28 22:05:02
 * @FilePath: \penk-ui\docs\.vitepress\theme\index.js
 * @email: 492934056@qq.com
 */
import Layout from "./Layout.vue";
import DefaultTheme from "vitepress/theme";

export default {
  ...DefaultTheme,
  // override the Layout with a wrapper component that
  // injects the slots
  Layout: Layout,
};

3.1.3 效果图

这边只是简单的修改了 #aside-outline-before 插槽

在这里插入图片描述

3.2 完整的config.js

用来配置网站基本信息(title,meta),markdown,文档的主题配置如导航,侧边栏,页脚…

vitePress的中文文档不行,可以参考英文文档…
官网文档:点击此处

/*
 * @Author: Penk
 * @LastEditors: Penk
 * @LastEditTime: 2022-12-29 14:33:44
 * @FilePath: \penk-ui\docs\.vitepress\config.js
 * @email: 492934056@qq.com
 */
module.exports = {
  // 网站title
  title: "penk-ui",
  // mete description...
  description: "基于elementPlus二次封装的组件库penk-ui文档",
  // 配置markdown
  markdown: {
    lineNumbers: true,
  },
  themeConfig: {
    // 头部标题
    siteTitle: "Welcome Penk-Ui",
    // 头部logo
    logo: "/favicon.ico",
    // 顶部导航
    nav: [
      { text: "Guide", link: "/guide/getting-started/what-is-penkUi", activeMatch: "/guide/" },
      { text: "团队", link: "/team/index", activeMatch: "/team/" },
      {
        text: "链接",
        items: [
          { text: "npm", link: "https://www.npmjs.com/package/penk-ui" },
          { text: "gitee", link: "https://gitee.com/penk666/penk-ui" },
          { text: "CSDN", link: "https://blog.csdn.net/cs492934056/category_12144231.html" },
        ],
      },
    ],
    // 侧边栏
    sidebar: [
      {
        text: "开始",
        items: [
          { text: "什么是Penk-Ui", link: "/guide/getting-started/what-is-penkUi" },
          { text: "怎么使用", link: "/guide/getting-started/how-to-use" },
        ],
      },
      {
        text: "组件",
        items: [
          { text: "前言", link: "/guide/intro/index.html" },
          { text: "头部搜索栏", link: "/guide/intro/penk-search" },
          { text: "表格栏", link: "/guide/intro/penk-table" },
          { text: "分页栏", link: "/guide/intro/penk-footer" },
          { text: "Form表单栏", link: "/guide/intro/penk-form" },
        ],
      },
      {
        text: "源码解析",
        items: [
          { text: "前言", link: "/guide/analysis/index.html" },
          { text: "头部搜索栏", link: "/guide/analysis/penk-search" },
          { text: "表格栏", link: "/guide/analysis/penk-table" },
          { text: "分页栏", link: "/guide/analysis/penk-footer" },
          { text: "Form表单栏", link: "/guide/analysis/penk-form" },
        ],
      },
    ],
    // 页脚
    footer: {
      message: "Released under the MIT License.",
      copyright: "Copyright © 2022-present Penk",
    },
  },
};

3.3 guide (看个人需求)


3.3.1 目录结构

guide 目录结构如下,主要是用来存放md文件,跟config.js 的一些跳转关联起来

├─analysis
│      index.md
│      penk-footer.md
│      penk-form.md
│      penk-search.md
│      penk-table.md
│
├─getting-started
│      how-to-use.md
│      what-is-penkUi.md
│
└─intro
        index.md
        penk-footer.md
        penk-form.md
        penk-search.md
        penk-table.md
3.3.2 对应的配置
// 侧边栏
sidebar: [
  {
    text: "开始",
    items: [
      { text: "什么是Penk-Ui", link: "/guide/getting-started/what-is-penkUi" },
      { text: "怎么使用", link: "/guide/getting-started/how-to-use" },
    ],
  },
  {
    text: "组件",
    items: [
      { text: "前言", link: "/guide/intro/index.html" },
      { text: "头部搜索栏", link: "/guide/intro/penk-search" },
      { text: "表格栏", link: "/guide/intro/penk-table" },
      { text: "分页栏", link: "/guide/intro/penk-footer" },
      { text: "Form表单栏", link: "/guide/intro/penk-form" },
    ],
  },
  {
    text: "源码解析",
    items: [
      { text: "前言", link: "/guide/analysis/index.html" },
      { text: "头部搜索栏", link: "/guide/analysis/penk-search" },
      { text: "表格栏", link: "/guide/analysis/penk-table" },
      { text: "分页栏", link: "/guide/analysis/penk-footer" },
      { text: "Form表单栏", link: "/guide/analysis/penk-form" },
    ],
  },
],
3.3.3 效果图

在这里插入图片描述

3.4 team


官网文档:点击此处
在这里插入图片描述

3.5 首页 index.md


yaml 语法在文件头部,当然也可以添加其他的纯markdown,或则vue组件…
我这边个人用yaml头部就可以满足个人需求了…

---
layout: home

hero:
  name: Penk-Ui
  text: Vue3 & elementPlus
  tagline: 二次封装组件库...
  image:
    src: ./public/1.jpg
    alt: Penk
  actions:
    - theme: brand
      text: Get Started
      link: /guide/index
    - theme: alt
      text: View on Gitee
      link: https://gitee.com/penk666/penk-ui

features:
  - icon: ⚡️
    title: 简明优先
    details: 对以 markdown 为中心的项目结构,做最简化的配置,帮助你专注于创作。
  - icon: 🖖
    title: Vue 驱动
    details: 享用 Vue + webpack 开发环境,在 markdown 中使用 Vue 组件,并通过 Vue 开发自定义主题。
  - icon: 🛠️
    title: 性能高效
    details: VuePress 将每个页面生成为预渲染的静态 HTML,每个页面加载之后,然后作为单页面应用程序(SPA)运行。
---

效果图
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
以下是使用Vue3、TypeScript、Vite、Element Plus、Router和Axios进行请求封装,并配置开发环境、测试环境和生产环境的步骤: 1. 首先,确保你已经安装了Node.js和npm。 2. 创建一个新的Vue项目,并选择Vue3作为模板: ```shell npm create vite@latest my-project cd my-project npm install ``` 3. 安装所需的依赖包: ```shell npm install vue-router@next axios element-plus npm install --save-dev @types/node ``` 4. 在项目根目录下创建一个`.env`文件,用于配置不同环境的变量。在该文件中,可以定义不同环境下的API地址等配置信息。例如: ``` # 开发环境 VITE_API_BASE_URL=http://localhost:3000/api # 测试环境 VITE_API_BASE_URL=http://test.example.com/api # 生产环境 VITE_API_BASE_URL=http://api.example.com/api ``` 5. 创建一个`src/api`文件夹,并在其中创建一个`request.ts`文件,用于封装请求。在该文件中,可以使用Axios发送请求,并根据不同环境的配置获取API地址。例如: ```typescript import axios from 'axios'; const instance = axios.create({ baseURL: import.meta.env.VITE_API_BASE_URL, timeout: 5000, }); export const get = (url: string, params?: any) => { return instance.get(url, { params }); }; export const post = (url: string, data?: any) => { return instance.post(url, data); }; ``` 6. 在`src/router`文件夹中创建一个`index.ts`文件,用于配置路由。在该文件中,可以定义路由的路径和对应的组件。例如: ```typescript import { createRouter, createWebHistory } from 'vue-router'; import Home from '../views/Home.vue'; const routes = [ { path: '/', name: 'Home', component: Home, }, // 其他路由配置... ]; const router = createRouter({ history: createWebHistory(), routes, }); export default router; ``` 7. 在`src/main.ts`文件中,引入所需的依赖,并配置Vue应用。例如: ```typescript import { createApp } from 'vue'; import App from './App.vue'; import router from './router'; createApp(App) .use(router) .mount('#app'); ``` 8. 在`src/App.vue`文件中,使用Element Plus组件和路由进行页面渲染。例如: ```html <template> <div> <router-view></router-view> </div> </template> <script> import { defineComponent } from 'vue'; export default defineComponent({ name: 'App', }); </script> <style> /* 样式 */ </style> ``` 9. 运行开发环境: ```shell npm run dev ``` 10. 在浏览器中访问`http://localhost:3000`,即可看到Vue应用的页面。 11. 根据需要,在`src/views`文件夹中创建其他页面组件,并在路由配置中添加对应的路径和组件。 12. 根据需要,在`src/components`文件夹中创建其他组件,并在页面组件中引入和使用
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Penk是个码农

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

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

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

打赏作者

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

抵扣说明:

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

余额充值