1 项目开始

1.1 工具清单

01.常用信息1
    a.工具类
        实用库:xijs
        实用库:Ramda
        实用库:Lodash.js / Radash.js
        实用库:es-toolkit
        算术运算:bigjs
        算术运算:decimaljs
        算术运算:bignumber.js
        表单校验:validator
        表单校验:validate.js
        处理url参数:qs.js
        时间和日期:day.js
        处理cookies:js-cookie
        Office三件套:vue-office实现Word、Excel和PDF预览功能
        创建可重用模板:createReusableTemplate,封装子组件
    b.相关工具
        vue-best-verify:这是一个基于vue3的表单验证库,创建这个库的原因是 element-plus antd-vue 等,其内部的表单组件太TMD难用了
        vue-monoplasty-slide-verify:基于滑动式的验证码,免于字母验证码的繁琐输入,用于网页注册或者登录
        -----------------------------------------------------------------------------------------------------
        node-modules-inspector:依赖查看
        unplugin-vue-inspector:Ctrl + Shift + 元素,跳转源码
        vite-plugin-turbo-console:点击控制台中的console.log打印信息跳转到编辑器
        -----------------------------------------------------------------------------------------------------
        VueUse:Vue组合式API的实用工具集
        pinia-plugin-persistedstate:持久化pinia数据,中文官网,使用简单,绝对的后起之秀
        vuex-persistedstate:持久化pinia|vuex数据,vue2时代的产物,主要用于vuex
    c.框架选型
        Rakon          figma模版
        Shipany        next.js模版
        Mksaas         next.js模版
        herouipro      next.js模版
        Supastarter    next.js模版
        -----------------------------------------------------------------------------------------------------
        flutter写不了小程序,只能写app
        微信小程序,我一般就是uniapp写,写原生就用官网组件,原生的写的太慢
    d.技巧
        微前端:qiankun
        回调地狱:使用Promise替代Ajax
        Vue Vine:类似react的函数式组件
        数据管理框架:Zustand、reduce

02.常用信息2
    a.vite插件
        mock数据:vite-plugin-mock
        自动重启:vite-plugin-restart
        自定义组件自动引入:unplugin-vue-components
        element-plus组件自动引入:unplugin-vue-components
        vue3等插件hooks自动引入:unplugin-auto-import/vite
        message, notification等引入样式自动引入:vite-plugin-style-import
    b.组件
        vxe-table:复杂表格
        Surely Vue Table:复杂表格
        variant-form:低代码可视化表单
    c.加密
        md5 (^2.3.0):这是 MD5 哈希算法的实现,通常用于生成数据的 MD5 摘要。
        crypto-js (^4.2.0):这是一个常用的前端加密库,提供了多种加密算法(如 AES、MD5、SHA1、SHA256 等)。它用于在前端进行加密和解密操作。
        @zxcvbn-ts/core (^3.0.4):这是一个密码强度检测库,虽然它本身不进行加密操作,但通常与密码相关的验证、加密任务一起使用。
    d.Surely Vue Table
        Surely Vue Table 是 Ant Design Vue 团队旗下的“高端”组件之一,该组件致力于解决大数据渲染、图表集成等复杂高频问题。 使用该组件可以流畅滚动 10 万行、10 万列的数据,你不必担心页面卡顿造成用户投诉,进而影响业务进展。
        该组件虽然是 Ant Design Vue 团队开发,但你依然可以将其使用在任何组件库中,它并不是 Ant Design Vue 的专属组件。
        Surely Vue 默认使用虚拟滚动提升渲染速度,树形数据、展开内容、嵌套子表格、行列合并、自动行高、横向、纵向、吸顶、固定头、固定列等等一切都支持虚拟滚动。
        很遗憾,这是一个商业化组件,不过不用担心,你依然可以免费使用它,但你不可以移除水印,当然也不可以隐藏水印。我们一直在保证 Ant Design Vue 完全开源的情况下,不断寻找靠谱的商业模式,期望通过“高端”组件集合获取一定的收入,招聘更多的技术专家,开发更多的功能。我想您也一定可以理解并支持我们,Surely Vue 的商业化将会有助于 Ant Design Vue 更快的成长。
        有必要再次声明,Ant Design Vue 并不是蚂蚁金服开发和维护,自诞生之日(2017 年)起,便是由 tangjinzhou 联合众多专业开发者进行开发维护,Surely Vue 是该团队企业化运营后推出的商业产品。四年来不断的坚持得到了众多开发者的认可,您不用担心他是 KPI 产物最后弃坑,更加无须担心个人开发者跑路,因为我们有众多付费企业客户,我们有健康可持续的稳定收入。
    e.vite.config.ts
        import Inspector from 'unplugin-vue-inspector/vite'
        import TurboConsole from 'unplugin-turbo-console/vite'
        plugins: [createVitePlugins(viteEnv, isBuild), Inspector({launchEditor: 'webstorm'}), TurboConsole()],

1.2 版本迭代

01.常见信息1
    a.前端框架
        Node.js:主流
        Deno:没什么必要学
        Bun:完全兼容node,性能更好
        Nextjs + TailwindCSS + Shadcn/ui
    b.后端框架
        NestJS:企业级,类似Java Spring架构
        Hono:轻量,API简洁
    c.数据库
        Prisma:成熟稳定且足够现代的ORM方案
        Drizzle:新兴方案,API设计简洁,适合对能力有自信的人
    d.其他
        NextAuth.js: Nextjs的鉴权库
        SWR: Nextjs 团队出品,HTTP 请求库,解决组件数据请求和缓存的问题
        zod: Schema 验证库,可以用于前后端数据和表单的校验
        Zustand:一个简单的 React 状态管理库,可以替代 Redux
        jotai:一个基于原子状态的状态管理库,具体可以根据需要选择
        driverjs: 引导用户操作的库,可以用于新手引导、操作引导等
        wxt: 一个类似 Nuxt 的浏览器插件开发框架,可以用于开发 Chrome 、Firefox 等插件
        orama: 前端全文搜索替代 algolia 的方案,nodejs 新官网就是使用的这个搜索引擎
    e.部署
        Fly.io
        Railway
        Cloudflare Worker:按量付费
    f.小程序
        团队 React 技术栈为主 -> 选 Taro
        团队 Vue 技术栈为主 -> Taro 和 uni-app 都可以(Taro 对 Vue 3 支持很好)

02.常见信息2
    a.TypeScript宣布原生代码移植计划:构建速度提升10倍
        TypeScript使用go语言移植TypeScript编译器,目的是为了解决大型代码库下的性能瓶颈问题,代号Corsa
        1.采用Go语言实现原生移植
        2.主流项目测试显示构建速度提升9-13倍(如VS Code从77.8秒降至7.5秒)
        3.VS Code项目加载时间从9.6秒缩短至1.2秒(8倍提升)
        4.内存占用预计减少50%以上,未来将进一步优化
        团队解释选择Go而非Rust/C#的原因:开发效率高(GC机制降低复杂度) 工具链成熟(快速构建、跨平台支持)

03.常见信息3
    a.分类1
        Vue 3:3.5.x
        Vue 2:2.7.16
    b.分类2
        Pinia:3.0,不支持vue2
        Vue Vapor:无虚拟DOM版本
        React Signals:React状态管理库
    c.分类3
        ArcoDesign:字节跳动出品的企业级设计系统
        Ant Designx 1.0:一个基于 Ant Design 的全新 AGI 组件库,使用 React 构建 AI 驱动的用户交互变得更简单了
    d.分类4
        React:版本 18.2,官方推荐使用Vite
        VitePlus:统一前端工具链
    e.应用框架
        Taro:跨端跨框架
        tango-boot:网易云
    f.抓包工具
        fiddler
        charles
        emmet
        wireshark
    g.AI框架
        brain.js

04.常见信息4
    a.构建工具
        Grunt、Gulp、Webpack、Babel、Parcel、Critters、sucrase、Webpack Config Tool、JSUI、PWA Universal Builder、VuePress
    b.框架和库
        PWA Starter Kit、PaperCSS、boardgame.io、Stimulus、sapper、Reakit、Evergreen
    c.HTML和CSS工具
        keyframes.app、Emotion、modern-normalize、layerJS、css-blocks、usebasin、mustard
    d.javascript工具
        ScrollHint、ToastUl editor、FilePond、Dinero.js、Swup、Selection.js、Glider.js、ScrollOut
    e.图标、图表工具
        Orion Icon Library、Frappe Charts、SVGator、ApexCharts、MapKit JS、Img2、Lozad
    f.React工具
        RSUITE、Pagedraw、react-smooth-dnd、Unstated、Reach Router、SVGR、React Spreadsheet Grid
    g.测试和数据工具
        webhint、Airtap、mkcert、Puppeteer Recorder、jsonstore.io、Initab、lambdatest
    h.9大前端JS框架
        Vue、React、Angular、QucikUI、Layui、Avalon、Dojo、Ember、Aurelia
    i.8大前端UI框架-PC端
        Element UI、vuetify、Ant Design、Bootstrap、layui、Vant-UI、Framework7、WEUI
    j.8大前端UI框架-移动端
        vant UI、cube UI、mint UI、Zoom UI
    k.10大NodeJS框架
        Hapi.JS、Express.JS、Socket.io、Total.JS、Sail.JS、Derby、Meteor.JS、Loopback、Koa、NestJS

05.预处理器三剑客(Sass/less/Stylus)
    a.分类
        Sass/Scss,需要Ruby环境
        Sass/Scss,需要Ruby环境,文件扩展名是.sass和.scss,推荐.scss
        Sass/Scss,需要Ruby环境,.sass不要大括号,其次不需要分号,还有行首空格问题
        Sass/Scss,编译器有三种dart-sass(推荐)、Lib-sass/node-sass(不推荐)、ruby-sass(不推荐)
        Sass/Scss,SASS输出样式的风格可以有四种选择,默认为nested。全部类别为:嵌套缩进的css代码、expanded:展开的多行css代码、compact:简洁格式的css代码、compressed:压缩后的css代码
    b.说明
        Less,需要引入less.js(浏览器),也可在服务端运行 (借助 Node.js),文件扩展名是.less
        stylus,需要安装node,文件扩展名是.styl
        js的两大圣书,一个红宝石(JavaScript高级程序设计),一个绿犀牛(JavaScript权威指南)

06.CSS框架
    a.分类1
        输入框:Bootstrap Tags Input
        输入框长度:Bootstrap Maxlength
        文件输入框:Bootstrap File Input
        选择框:Bootstrap Select
        选择框多选:Bootstrap Multiselect
        表格插件:Bootstrap Table
        日期控件:Bootstrap Datepicker
        通知控件:Bootstrap Notify
        颜色选择:Bootstrap Colorpicker
        开关按钮:Bootstrap Switch
        滑动条控件:Bootstrap Slider
        弹框:Bootstrap Dialog
        确定对话框:Bootstrap Confirmation
    b.分类2
        BootstrapVue(结合Bootstrap、VUE)
        React-Bootstrap(结合Bootstrap、React)
        Angular UI Bootstrap(结合Bootstrap、Angular)
    c.分类3
        国内用Layui,国外用BootStrap
        Layui(国产):采用自身轻量级模块化规范,非常适合网页界面的快速构建
        Bootstrap(twitter):提供了一整套响应式设计的组件和网格系统,易于使用和定制,适合快速开发
    d.分类4
        Foundation:功能强大的响应式框架,提供了许多可定制的组件和布局选项,适用于复杂的项目
        Bulma:基于 Flexbox 的现代响应式框架,语法简洁,易于使用,适合快速开发
        Materialize:基于 Google 的 Material Design 规范,提供了 Material Design 风格的组件和布局
        Semantic UI:使用自然语言风格的类名,使代码更具可读性,提供了多种主题和组件
        UIKit:轻量级的前端框架,提供了简单易用的组件和工具,易于集成和扩展
        Ant Design:由 Ant Financial 开发,提供了一整套企业级的设计系统和组件,适合构建复杂的业务应用
        Chakra UI:基于组件的 CSS 框架,提供了可访问性强、易于定制的组件,主要用于 React 应用
        Pure CSS:一个极简的 CSS 框架,提供了一些基础的样式和组件,适合需要轻量级解决方案的项目
        Tailwind CSS:一个功能类优先的框架,提供了大量的工具类用于构建自定义设计,灵活且可高度定制
        UnoCSS:它在构建时动态生成所需的 CSS 类,依据实际使用情况来生成样式,减少冗余和不必要的 CSS 类

07.与Tailwind CSS相关的PostCSS插件
    a.分类
        tailwindcss: 这是 Tailwind CSS 的核心插件,用于生成 Tailwind 的实用类
        postcss-purgecss: 用于删除未使用的 CSS 类,通常在生产环境中使用,以减少 CSS 文件的大小,Tailwind CSS 可以与 PurgeCSS 配合使用,确保只保留实际使用的类
        autoprefixer: 与 Tailwind CSS 一起使用,自动添加浏览器前缀,确保兼容性
    b.PostCS插件
        Autoprefixer: 自动为 CSS 规则添加浏览器前缀,以确保兼容性
        postcss-import: 允许使用 @import 语句来导入其他 CSS 文件
        postcss-nested: 支持嵌套的 CSS 规则,类似于 Sass 的嵌套语法
        cssnano: 一个优化和压缩 CSS 的插件,用于生产环境
        postcss-preset-env: 允许使用最新的 CSS 特性,并且会自动将它们转换为更兼容的格式
        postcss-simple-vars: 允许在 CSS 中使用变量
        postcss-mixins: 允许在 CSS 中定义和使用混入(mixin)
        postcss-custom-media: 允许定义和使用自定义媒体查询
        postcss-custom-properties: 支持 CSS 自定义属性(CSS 变量)
        postcss-flexbugs-fixes: 修复 Flexbox 在不同浏览器中的一些已知问题
    c.配置文件,postcss.config.js
        module.exports = {
          plugins: [
            require('tailwindcss'),
            require('autoprefixer'),
            require('@fullhuman/postcss-purgecss')({
              content: ['./src/**/*.html', './src/**/*.js'],
              defaultExtractor: content => content.match(/[\w-/:]+(?<!:)/g) || []
            })
          ]
        }

1.3 语言特性

01.iframe与非iframe
    a.iframe版本
        iframe 是 HTML 中用于嵌入另一个 HTML 页面到当前页面的标签。使用 iframe 嵌入内容时,有以下几个特点:
        独立性:iframe 内的内容与主页面是独立的,意味着 iframe 内的 CSS 和 JavaScript 不会直接影响主页面,反之亦然。
        隔离:由于内容的独立性,iframe 内的资源加载、样式和脚本执行都是独立的,这可以增加页面的安全性和稳定性。
        跨域限制:如果 iframe 加载的是跨域内容,某些功能(如 JavaScript 操作)可能会受到限制。
        样式调整:需要注意 iframe 本身的样式调整,如宽度、高度、边框等。此外,如果需要让 Bootstrap 样式在 iframe 中生效,需在 iframe 内部引用 Bootstrap 的 CSS 和 JavaScript。
    b.非iframe版本
        非 iframe 版本通常指的是直接在主页面中使用 Bootstrap 进行开发,而不借助 iframe。其特点包括:
        全局应用:Bootstrap 的 CSS 和 JavaScript 会全局应用于主页面和其中的所有元素。
        更灵活的布局:无需处理 iframe 带来的独立性问题,布局和响应式设计更为方便。
        更方便的交互:可以更方便地实现页面内元素的交互和动态效果,不受 iframe 的限制。
        性能优势:减少了额外的 HTTP 请求(加载 iframe),因此页面加载性能可能更好。
        具体应用场景分析
        使用 iframe 的场景:通常用于嵌入第三方内容(如嵌入视频、地图、小工具等),或者需要将某些内容隔离开来避免冲突时。
        直接使用 Bootstrap 的场景:适用于大多数前端开发场景,尤其是需要构建整体一致、响应迅速的用户界面时。
    c.总结
        使用 iframe 版本时,Bootstrap 的样式和脚本需要在 iframe 内部引用,内容独立性较强。
        非 iframe 版本则直接在主页面引用 Bootstrap,可以更方便地实现页面布局和交互效果。

02.Vue3和React都支持函数式编程
    a.说明1
        vue自动挡,react手动挡
        VUE,简称SFC
        低代码:会的用不上,不会的用不了
        Vue 3 和 React 都支持函数式编程,但 React 更早地全面采用了这种范式,而 Vue 3 则在保留传统选项 API 的同时,
        引入了更现代化的组合 API,以更好地支持函数式编程。两者在函数式编程的支持上各有特色和优势
    b.说明2
        1.设计理念:
        React 自始至终都是函数式编程的支持者,类组件逐渐被函数组件取代
        Vue 传统上以模板和选项 API 为主,但 Vue 3 引入了组合 API,显著增强了函数式编程的支持
        2.状态管理:
        React 使用 useState 和 useReducer 等 Hook 来管理状态
        Vue 3 使用 ref 和 reactive 等 API 来管理状态
        3.逻辑复用:
        React 通过自定义 Hook 实现逻辑复用
        Vue 3 通过组合函数实现逻辑复用

2 技术栈

2.1 Layout

01.汇总
    流式布局:Normal Flow
    浮动布局:Float
    定位布局:Position
    弹性布局:Flexbox
    网格布局:Grid
    多列布局:Multi-column
    表格布局:Table
    响应式布局:媒体查询、移动优先、流体网格
    容器查询布局:@container

02.基本信息
    a.流式布局 (Normal Flow)
        默认的文档流布局
        块级元素垂直排列,行内元素水平排列
    b.浮动布局 (Float)
        使用 float: left/right
        早期常用,现已较少使用
    c.定位布局 (Position)
        static - 默认
        relative - 相对定位
        absolute - 绝对定位
        fixed - 固定定位
        sticky - 粘性定位
    d.Flexbox 弹性布局
        display: flex
        一维布局(行或列)
        适合组件级布局
    e.Grid 网格布局
        display: grid
        二维布局(行和列)
        适合页面级布局
    f.多列布局 (Multi-column)
        column-count, column-width
        类似报纸排版
    g.表格布局 (Table)
        display: table
        不推荐用于页面布局
    h.响应式布局
        媒体查询 (Media Queries)
        移动优先 (Mobile First)
        流体网格 (Fluid Grid)
    i.容器查询布局
        @container
        基于容器而非视口的响应式布局

2.2 VoidZero

01.Vite 6.0
    a.时间
        2024年11月26日
        Environment API 的引入标志着 Vite 在构建工具领域的又一重要里程碑。
        这不仅为框架开发者提供了更强大的工具,也为整个前端生态系统带来了新的可能性。
    b.多环境配置
        export default defineConfig({
          experimental: {
            environments: {
              client: {
                entry: 'src/entry-client.tsx',
                env: { SSR: 'false' }
              },
              server: {
                entry: 'src/entry-server.tsx',
                env: { SSR: 'true' }
              }
            }
          }
        })
    c.环境隔离能力
        独立的入口文件配置
        环境特定的构建设置
        严格的环境变量隔离
    d.实际应用场景
        a.SSR 框架开发
            客户端与服务端代码分离
            环境特定的插件支持
            精确的依赖分析
        b.多平台应用
            Web、Desktop、Mobile 多端统一管理
            平台特定的构建优化
            条件编译支持
    e.其他重要更新
        a.Node.js 支持
            支持 Node.js 18、20 和 22+ 版本
            移除 Node.js 21 支持
            Node.js 18 将支持至 2025 年 4 月
        b.技术升级
            resolve.conditions 默认值优化
            JSON stringify 增强
            HTML 元素资产引用扩展
            Sass 现代 API 默认启用
            库模式下的 CSS 文件名自定义
        c.企业级应用支持
            OpenAI、Google、Apple、Microsoft、NASA、Shopify、Cloudflare、GitLab、Reddit、Linear 等科技巨头都在使用 Vite。
            这充分证明了 Vite 在企业级应用中的可靠性和性能优势。

02.VoidZero开源版图
    a.介绍
        基于构建工具的测试工具:Vitest
        Web环境的构建工具:Vite,版本 6.0(2024年11月26日)
        打包工具:Rolldown
        底层工具:oxc-parser、oxlint、oxc-resolver、oxc-transform
        -----------------------------------------------------------------------------------------------------
        VoidZero是一家开发JS工具链的公司,主要采用老带新策略开发开源产品
        具体来说,是将上层开源产品Vite(老)的流量导给下层开源产品Rolldown(新)
        除此之外,还有一家做JS技术栈开源产品的公司Vercel,也在采用老带新策略
        不过他们的策略略有不同,他们是将下层开源产品React(老)的流量导给上层开源产品Next.js(新),并最终导给自家的云服务
    b.工具链
        TanStack Start (TS)
           └── SolidStart (TS)
               └── Solid.js (TS)
        Vinxi (JS)
        LIT (TS)
        Alpine (JS)
        Qwik / City (TS)
        Analog (TS)
        Angular (TS)
        nuxt (TS)
        Vue.js (TS)
        Astro / Starlight (TS)
        Svelte / Kit (JS)
        Preact (JS)
        React (JS)
        Remix (TS)
        Vite (TS)
           └── Bundling with Vite
    c.横向是指最底层OXC工具箱中一系列工具构成的横向链条
        oxc-parser:用于解析.js(x)和.ts(x),对标swc,基准测试据称比swc快2倍
        oxlint,对标Eslint,基准测试据称比Eslint快50~100倍
        oxc-resolver,解析esm、cjs文件路径,对标webpack/enhanced-resolve,基准测试据称比webpack快28倍
        oxc-transform,转换jsx/tsx/ts到js,对标babel与ts编译器相关功能
    d.纵向是指不断基于下层工具构建的上层工具组成的纵向链条
        oxc-parser、oxc-resolver、oxc-transform为上层工具Rolldown提供了AST、文件路径解析、jsx/tsx/ts转js的能力
        Rolldown作为bundler(打包器),为上层构建工具Vite提供打包编译能力
        Vite作为web环境的构建工具,为上层工具(比如Vitest、Vue、VitePress...)提供构建能力
        Vite驱动的前端框架Vue,又作为全栈框架Nuxt的元框架
    e.愿景中所谓统一、高性能主要指两点:
        基于纵向链条,所有工具都基于同一个AST(oxc-parser产生的),同一套路径解析(oxc-resolver产生的)。
        相比当前JS工具链中工具各自为政(Prettier、Eslint、Babel等各自都会解析AST),统一的工具链显然更高效。
        所有工具底层都基于Rust构建,相比JS工具性能更高

2.3 Monorepo

01.定义
    Monorepo架构是一种软件开发方法,其中多个项目的代码库存储在同一个版本控制仓库中
    与传统的每个项目单独一个仓库(称为多仓库或polyrepo)不同,monorepo将所有相关项目的代码集中在一起进行管理

02.优点
    代码共享和重用:由于所有代码都在同一个仓库中,团队可以更方便地共享和重用代码模块
    一致性和标准化:可以更容易地在整个代码库中实施一致的编码标准和工具配置
    简化依赖管理:在同一个仓库中管理依赖关系,可以减少版本冲突和依赖管理的复杂性
    原子性变更:可以在一个提交中对多个项目进行变更,确保变更的一致性和完整性
    更好的协作:团队成员可以更容易地查看和理解整个代码库的结构和依赖关系,促进协作

03.缺点
    规模管理:随着项目的增长,仓库可能变得非常庞大,导致性能问题
    权限管理:需要更复杂的权限管理策略,以确保不同团队对代码的访问权限
    总体来说,monorepo适合那些需要在多个项目之间进行紧密协作和共享代码的团队

04.应用场景
    Google:Google是Monorepo架构的早期采用者之一,他们将大部分代码库集中在一个巨大的Monorepo中进行管理。这使得Google能够在多个项目之间实现高效的代码共享和协作
    Facebook:Facebook也使用Monorepo来管理他们的代码库,包括React等开源项目。通过Monorepo,Facebook能够更好地管理依赖关系和版本控制
    Vue.js:Vue.js的开发团队使用Monorepo来管理其核心库和相关工具。通过这种方式,Vue.js团队可以更方便地进行版本同步和功能集成
    Babel:Babel是一个JavaScript编译器项目,它使用Monorepo来管理其核心库和插件。这样可以确保所有组件在开发和发布时保持一致
    Angular:Angular框架也采用了Monorepo架构来管理其核心库、工具和相关项目。这使得Angular团队能够更高效地进行开发和维护

2.4 ant-design-vue

01.说明
    a.说明1
        Ant Design 是由阿里巴巴集团的 Ant Design 西湖团队开发和维护的一套企业级的 UI 设计语言和前端组件库,
        旨在提供一致性、高质量的用户界面设计和开发方案。
    b.说明2
        Ant-Design-Vue是蚂蚁金服Ant Design官方推荐的Vue版UI组件库,它继承了Ant Design的设计语言和Vue.js的易用性,
        为开发者提供了丰富、高质量的Vue组件,极大地简化了前端开发流程。
    c.说明3
        Surely Vue Table 是 Ant Design Vue 团队旗下的“高端”组件之一,该组件致力于解决大数据渲染、图表集成等复杂高频问题。 使用该组件可以流畅滚动 10 万行、10 万列的数据,你不必担心页面卡顿造成用户投诉,进而影响业务进展。
        该组件虽然是 Ant Design Vue 团队开发,但你依然可以将其使用在任何组件库中,它并不是 Ant Design Vue 的专属组件。
        Surely Vue 默认使用虚拟滚动提升渲染速度,树形数据、展开内容、嵌套子表格、行列合并、自动行高、横向、纵向、吸顶、固定头、固定列等等一切都支持虚拟滚动。
        很遗憾,这是一个商业化组件,不过不用担心,你依然可以免费使用它,但你不可以移除水印,当然也不可以隐藏水印。我们一直在保证 Ant Design Vue 完全开源的情况下,不断寻找靠谱的商业模式,期望通过“高端”组件集合获取一定的收入,招聘更多的技术专家,开发更多的功能。我想您也一定可以理解并支持我们,Surely Vue 的商业化将会有助于 Ant Design Vue 更快的成长。
        有必要再次声明,Ant Design Vue 并不是蚂蚁金服开发和维护,自诞生之日(2017 年)起,便是由 tangjinzhou 联合众多专业开发者进行开发维护,Surely Vue 是该团队企业化运营后推出的商业产品。四年来不断的坚持得到了众多开发者的认可,您不用担心他是 KPI 产物最后弃坑,更加无须担心个人开发者跑路,因为我们有众多付费企业客户,我们有健康可持续的稳定收入。
    d.版本差异
        3.x、4.x、5.x,React从类组件变成函数组件,生命周期管理完全变成Hook

02.两种引入方式
    a.完整引入
        //完整引入
        import Vue from 'vue';
        import Antd from 'ant-design-vue';
        import App from './button';
        import 'ant-design-vue/dist/antd.css';
        /*阻止启动生产消息 开发环境下,Vue 会提供很多警告来帮你对付常见的错误与陷阱。
        而在生产环境下,这些警告语句却没有用,反而会增加应用的体积。此外,有些警告检
        查还有一些小的运行时开销,这在生产环境模式下是可以避免的。*/
        Vue.config.productionTip = false;
        Vue.use(Antd);
        new Vue({
            /**/
            render:h => h(App),
            //这里的render: h=> h(App)是es6的写法
            //render函数是vue通过js渲染dom结构的函数createElement约定可以简写为h
            // 转换过来就是:
            // render: function (createElement) {
            //         return createElementApp);
            //     },

        }).$mount('#app');
            //$mount(’#app’) :手动挂载到id为app的dom中的意思
            // 当Vue实例没有el属性时,则该实例尚没有挂载到某个dom中;
            // 假如需要延迟挂载,可以在之后手动调用vm.$mount()方法来挂载
    b.局部导入组件
        import Vue from 'vue';
        import { Button,Icon} from 'ant-design-vue';
        import 'ant-design-vue/dist/antd.css';
        import App from './button';
        Vue.use(Button);
        Vue.use(Icon);
        Vue.component(Button.name, Button);
        Vue.config.productionTip = false;
        Vue.component(Button.name, Button);
        new Vue({
            render: h => h(App),
        }).$mount('#app');
    c.按需加载
        可以通过以下的写法来按需加载组件。
        import Button from 'ant-design-vue/lib/button';
        import 'ant-design-vue/lib/button/style'; // 或者 ant-design-vue/lib/button/style/css 加载 css 文件
        -----------------------------------------------------------------------------------------------------
        如果你使用了 babel,那么可以使用 babel-plugin-import 来进行按需加载,加入这个插件后。你可以仍然这么写:
        import { Button } from 'ant-design-vue';
        插件会帮你转换成 ant-design-vue/lib/xxx 的写法。另外此插件配合 style 属性可以做到模块样式的按需自动加载。