分享一个自己写的antdv动态表单组件 <!
icon 自定义图标(1.14.0 新增) string|()=>VNode <Icon type="question-circle"> 一、利用自带的icon赋值个默认的icon名字就可以了,但是有时候我们需要用到实底风格的icon,所以只能用()=>VNode
今天做的一个项目,使用的 Ant Design for Vue 组件库。 在页面中写了一个 Modal 组件,发现模态框弹出后无法关闭: <a-modal :visible="visible" :footer="null" :closable="false" > 设置 maskClosable 属性也不行: <a-modal :visible="visible" :footer="null" :closable="false" :maskClosable="true" > mas
20210226143910450.png 033360截图20210226144059782.png 034360截图20210227165112176.png ant-design-vue桌面端vue3组件库 antdv
* JS */ handleCancel () { this.visible = false } 未经允许不得转载:w3h5-Web前端开发资源网 » 奇怪的“bug”:@cancel取消回调导致antdv
Warning: [antdv: Each record in table should have a unique key prop,or set rowKey to an unique primary
AntDV非常强大,效果也非常漂亮,功能强大,使用也非常灵活,只是写起来代码有点多。 AntDV的Form表单似乎只能是单列或者单行的,没发现多行多列的方法。 单列就是下面这样 ? 多行多列是这样 ? 难道现在都不需要这种多行多列的表单了吗? 为啥不自己写个table? 这个还真写了,查询表单就是自己写的table,只是我发现表单验证的功能似乎被AntDV给封装到了Form表单里面,目前还没发现单独使用的方法。 所以目前只好直接封装Form表单来实现表单验证功能了。
2.使用过的组件 加载中(a-spin):https://antdv.com/components/spin-cn/ 栅格系统(a-row、a-col):https://antdv.com/components /grid-cn/ 表单(a-form、a-form-item):https://antdv.com/components/form-cn/ 布局(a-layout...) :https://antdv.com/components/layout-cn/ 卡片(a-card):https://antdv.com/components/card-cn/ 3.表格(a-table ) 提示 官方文档:https://antdv.com/components/table-cn/#API API详解: columns,指定一个对象用于配置表格列。 pagination,表格的分页相关配置,https://2x.antdv.com/components/pagination-cn bordered,布尔值,是否显示表格竖向的边框。
主应用: 1、修改主应用的 index.js,将共享包挂载到主应用的 window 对象上 // index.js import Antdv from "ant-design-vue"; // 将需要共享的包挂载到主应用全局 window.Antdv = Antdv; 2、加载子应用时注入插件,将主应用的 Antdv 赋值到子应用的 window 对象上 <WujieVue name="A" url="xxxxx" : plugins="[{ jsBeforeLoaders: [{ content: 'window.<em>Antdv</em> = window.parent.<em>Antdv</em>' }] }]"> </WujieVue> 子应用 : webpack 设置 externals module.exports = { externals: { "ant-design-vue": { root: "Antdv ", commonjs: "Antdv", commonjs2: "Antdv", amd: "Antdv", }, }, }; 如果子应用需要单独运行可以参考文档
主应用: 1、修改主应用的 index.js,将共享包挂载到主应用的 window 对象上 // index.js import Antdv from "ant-design-vue"; // 将需要共享的包挂载到主应用全局 window.Antdv = Antdv; 2、加载子应用时注入插件,将主应用的 Antdv 赋值到子应用的 window 对象上 <WujieVue name="A" url="xxxxx" : plugins="[{ jsBeforeLoaders: [{ content: 'window.<em>Antdv</em> = window.parent.<em>Antdv</em>' }] }]"> </WujieVue> 子应用 : webpack 设置 externals module.exports = { externals: { "ant-design-vue": { root: "Antdv ", commonjs: "Antdv", commonjs2: "Antdv", amd: "Antdv", }, }, }; 如果子应用需要单独运行可以参考文档
slots.default}</tag> } } 看过 Ant Design Vue (https://github.com/vueComponent/ant-design-vue) 源码 (下面简称为 antdv ) 的同学应该知道, antdv 的底层是基于 JSX 来实现的,也是 Vue 生态中使用 JSX 的深度用户。 写这篇文章的时候,antdv 已经使用 @ant-design-vue/babel-plugin-jsx (https://github.com/vueComponent/ant-design-vue) 那么 antdv 又是如何做迁移的呢?考虑到 antdv 是个组件库,都包一层 compatibleProps 势必不太优雅,因此没有选择开启这个两个开关。 虽然说 Vue 中 JSX 的开发方式是一个少数群里,但是 antdv 的使用用户也不是少数。
背景 技术栈 : antdv TS Vue3.0 目录 root vue.config.js script 打包脚本 gulpfile.js components 组件源文件 src 测试用例 配置打包命令 这部分需要我们自己动手生成, 参考 antdv iview 我们使用 gulp 实现相关功能 // pakcage.json { // 新增打包命令 "script": { // 统一构建任务 除了生产 umd 模块外, 如需要提供ES6 模块, 我们需要自己配置相关打包处理,可以参考 antdv 官方的打包方案。
https://1x.antdv.com/docs/vue/getting-started-cn/ 根据 Ant Design 官方文档,在 vue2 中安装组件时使用指令: npm i --save
还是antdv那个样子,只是没有直接使用Form组件,而是用了几个class。(验证功能还在研究中) 表单一 公司信息 ? 表单二 员工信息,简化版,只是为了演示表单的切换。以后会出复杂版 ? 首先要使用基于antdv封装的表单元素组件,然后for循环出来tr,再把组件加到td里面就可以了,操控感十足。 因为都是for出来的,所以表单再大,代码也还是那几行,不会增加。
Ant Design Vue https://www.antdv.com/docs/vue/getting-started-cn 概要 CSS预处理器为Less。 示例为TS+组合式API。 createApp(App) app.use(createPinia()) app.use(router) app.use(Antd) app.mount('#app') 修改主题 https://www.antdv.com
Vue3还有几个必备库,比如Vue-Router(负责路由导航)、Vuex(状态管理、组件间通信),还有第三方UI库,比如element Plus、Antdv、Vant 等。 src="https://unpkg.com/element-plus/lib/index.full.js"></script>
<link rel="stylesheet" href="js/<em>antdv</em> /antd.css">
<script src="js/<em>antdv</em>/antd.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net --Ant Design Vue 的 按钮-->
<a-button type="primary" @click="click">antdv的按钮</a-button>
Ant Design Vue 中文文档:https://www.antdv.com/docs/vue/introduce-cn/ Github:https://github.com/vueComponent link"> Link </a-button>
Ant Design Vue 中文文档:https://www.antdv.com/docs/vue/introduce-cn/ Github: https://github.com/vueComponent link"> Link </a-button>
LocaleProvider 报错的问题:Vue项目使用Ant Design升级后报错`LocaleProvider` is deprecated的解决方法 今天又发现首页有一个报错:Warning: [antdv
为啥还要折腾 首先antdv 是一个非常强大UI库,提供了很强大的功能和漂亮的UI,使用方面也是非常的灵活,不仅有Form表单,还有各种Data Entry组件,非常灵活。 只是鱼和熊掌不能兼得,antdv为了灵活而牺牲了一些简洁性。 找了半天,antdv没有提供单纯的table,只好手动找class了,于是代码变成了这样。 当然实际干活的是vue和antdv,我只是做了一种尝试。 为啥不直接用antdv提供的 Form 表单? 这个嘛,思路不太一样。好吧,其实是官网的代码,在本地还没有调试成功,等研究明白了还是会用的。