热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

antdesignvue自定义table表头,antdesignvue里表单布局

antdesignvue自定义table表头,antdesignvue里表单布局这篇文章主要介绍了如何使用蚂蚁设计的桌子组件,具有很好的参考价值

  ant design vue 自定义table表头,ant design vue里表单布局

  这篇文章主要介绍了如何使用蚂蚁设计的桌子组件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  

目录

   安装脚手架工具使用Vue CLI新建项目$ slotsTable组件相关源码

  

安装脚手架工具

  新公共管理安装-g @vue/cli

  查看@vue/cli版本,vue -V。

  

使用Vue CLI新建项目

  某视频剪辑软件创建antd-演示

  下载ant-design-vue,ant-design-vue@2.1.6

  新公共管理安装ant-design-vue@next - save

  修改main.js,完整引入ant-design-vue所有组件及样式

  从“vue”导入{ createApp }

  从导入应用程序 App.vue

  从“蚂蚁设计”导入Antd

  导入" ant-design-vue/dist/antd。CSS”;

  createApp(应用程序)。使用(安特).挂载(#应用程序)

  修改HelloWorld.vue,使用Antd的Table组件

  模板

  a-table:数据源=数据源:列=列/

  /模板

  脚本

  导出默认值{

  名称:“Helloworld”,

  setup() {

  返回{

  数据源:[

  {

  键:"1",

  名称: 胡彦斌,

  年龄:32岁,

  地址: 西湖区湖底公园一号,

  },

  {

  键:"2",

  名称: 胡彦祖,

  年龄:42岁,

  地址: 西湖区湖底公园一号,

  },

  ],

  列:[

  {

  标题: 姓名,

  数据索引:"名称",

  关键字:"名称",

  },

  {

  标题: 年龄,

  数据索引:"年龄",

  关键字:"年龄",

  },

  {

  标题: 住址,

  数据索引:"地址",

  关键字:"地址",

  },

  ],

  };

  },

  };

  /脚本

  :columns=“columns”,列是一个数组,用于指定列头

  数据索引值依次是:姓名、年龄和地址,与数据源每项的姓名、年龄和地址对应标题,数据索引值对应的列头名称姓名,对应的列头名称是姓名年龄,对应的列头名称是年龄地址,对应的列头名称是地址钥匙,Vue需要的钥匙,如果已经设置了唯一的数据索引,可以忽略这个属性:数据源=数据源,指定数据源数据源是一个数组每项的姓名、年龄和地址,与列里数据索引的值:姓名、年龄和地址相对应修改HelloWorld.vue,使用Antd的桌子组件

  模板

  表答:列=列:数据源=数据

  template # name="{ text } "

  a{{ text }}/a

  /模板

  模板#自定义标题

  跨度

  微笑轮廓/

  名字

  /span

  /模板

  template #tags={ text: tags }

  跨度

  标签

  v-for=标记中的标记

  :key=tag

  :color=tag===失败者?火山:标签长度5?极客蓝:绿色

  {{ tag.toUpperCase() }}

  /a标签

  /span

  /模板

  模板# action="{ record } "

  跨度

  aInvite一{{ record.name }}/a

  分隔线type=vertical /

  aDelete/a

  分隔线type=vertical /

  蚂蚁下拉链接

  更多操作

  轮廓分明/

  /a

  /span

  /模板

  /a-表格

  /模板

  脚本语言

  从" @ant-design/icons-vue "导入{微笑外轮廓,下轮廓}。

  从“vue”导入{定义组件};

  常量列=[

  {

  数据索引:"名称",

  关键字:"名称",

  插槽:{ title: customTitle ,customRender: name }

  },

  {

  标题:"年龄",

  数据索引:"年龄",

  关键字:"年龄",

  },

  {

  标题:地址,

  数据索引:"地址",

  关键字:"地址",

  },

  {

  标题:"标签",

  关键字:"标签",

  数据索引:"标签",

  插槽:{ customRender: tags },

  },

  {

  标题:"动作",

  按键:"动作",

  插槽:{ customRender: action },

  },

  ];

  常量数据=[

  {

  键:"1",

  姓名:"约翰布朗",

  年龄:32岁,

  地址:"纽约第一湖公园",

  标签:[尼斯,开发商],

  },

  {

  键:"2",

  姓名:"吉姆格林",

  年龄:42岁,

  地址:"伦敦第一湖公园",

  标签:[失败者],

  },

  {

  密钥:"3",

  姓名:"乔布雷克",

  年龄:32岁,

  地址:"悉尼一号湖公园",

  标签:[酷,老师],

  },

  ];

  导出默认定义组件({

  setup() {

  返回{

  数据,

  列,

  };

  },

  组件:{

  微笑着,

  轮廓分明,

  },

  });

  /脚本

  注意哈,蚂蚁设计-vue表里:数据来源与:数据源是等效的。

  要使用时间自定义样式,就有必要了解下某视频剪辑软件里的$老虎机和桌子组件的源码。

  

$slots

  插槽内容可以在这个。$老虎机中看到,举个例子。

  组件基本布局

  模板

  页眉

  插槽名称=标题/槽

  /页眉

  主要的

  插槽名称=默认/插槽

  /main

  页脚

  插槽名称=页脚/插槽

  /页脚

  /模板

  脚本

  导出默认值{

  名称:"基础布局"

  }

  /脚本

  App.vue

  模板

  基线布局

  模板#标题

  球体是第一部分/p

  /模板

  模板#默认

  球体是第二部分/p

  /模板

  模板#页脚

  球体是第三部分/p

  /模板

  /BaseLayout

  /模板

  脚本

  从导入基线布局/组件/基本布局。vue ;

  导出默认值{

  名称:"应用程序",

  组件:{

  基线布局

  }

  }

  /脚本

  风格

  #app {

  字体系列:Avenir、Helvetica、阿里亚、无衬线;

  -WebKit-字体-平滑:抗锯齿;

  -moz-osx-font-smoothing:灰度;

  文本对齐:居中;

  颜色:# 2c3e50

  边距-顶部:60px

  }

  /风格

  主页。射流研究…

  从“vue”导入{ createApp }

  从导入应用程序 App.vue

  从“蚂蚁设计”导入Antd

  导入" ant-design-vue/dist/antd。CSS”;

  createApp(应用程序)。使用(安特).挂载( # app );

  现在我们修改base-layout.vue,使用这个。$老虎机来访问插槽内容。

  模板

  页眉

  插槽名称=标题/槽

  /页眉

  主要的

  插槽名称=默认/插槽

  /main

  页脚

  插槽名称=页脚/插槽

  /页脚

  /模板

  脚本

  导出默认值{

  名称:基本布局,

  已安装:函数(){

  控制台。日志(这个);

  console.log(这个$ slots);

  console.log(这个$老虎机。表头);

  console.log(这个$老虎机。header());

  console.log(这个slots.header()[0].El);

  console.log(这个slots.default()[0].El);

  console.log(这个slots.footer()[0].El);

  }

  }

  /脚本

  

Table组件相关源码

  节点_模块/蚂蚁-设计-vue/es/表格/索引。射流研究…

  updateColumns(cols=[]) {

  const columns=[];

  const { $slots,$ scopedSlots }=this

  cols.forEach(col={

  const { slots={},scopedSlots={},restProps }=col

  常量列={

  .restProps,

  };

  对象.键(插槽)。forEach(key={

  const name=slots[key];

  if(column[key]===undefined $ slots[name]){

  列[键]=$ slots[名称]。长度===1?$ slots[name][0]:$ slots[name];

  }

  });

  Object.keys(scopedSlots).forEach(key={

  const name=scoped slots[key];

  if(column[key]===undefined $ scopedSlots[name]){

  列[key]=$ scoped slots[name];

  }

  });

  //if(slotScopeNamescopedSlots[slotScopeName]){

  //列。自定义渲染=列。自定义渲染 $ scopedSlots[slotScopeName]

  //}

  if (col.children) {

  专栏。孩子=这个。更新列(列。儿童);

  }

  列。推(柱);

  });

  返回列;

  }

  只有满足条件(column[key]===undefined $ slots[name]),才能使用作用域插槽来自定义表头。本例中,数据索引:"名称"想自定义表头,所以不能定义标题属性,而是在时间属性中定义了标题属性。

  node _ modules/ant-design-vue/es/VC-table/src/表格单元。射流研究…

  render() {

  常数{

  记录,

  indentSize,

  前缀,

  缩进,

  索引,

  膨胀,

  列,

  组件:体细胞,

  }=这个;

  const { dataIndex,customRender,className= }=column

  const { transformCellText }=this。表;

  //如果没有指定数据索引,我们应该返回未定义,但是为了

  //为了与目标路径的行为兼容,我们返回记录对象。

  让文字;

  if(数据类型索引===数字){

  text=get(记录,数据索引);

  } else if(!数据索引 数据索引。长度===0){

  文本=记录;

  }否则{

  text=get(记录,数据索引);

  }

  让tdProps={

  道具:{},

  属性:{},

  开:{

  点击:this.handleClick单击点击,

  },

  };

  让科尔斯潘;

  让跨行数

  if (customRender) {

  text=customRender(文本、记录、索引、列);

  if(isinvindrendercelltext(text)){

  TD道具。attrs=文本。attrs { };

  TD道具。道具=文字。道具 { };

  TD道具。class=text。类;

  TD道具。样式=文本。风格;

  colSpan=TD道具。attrs。colSpan

  rowSpan=TD props。attrs。rowSpan

  文本=文本.儿童

  }

  }

  if (column.customCell) {

  tdProps=mergeProps(tdProps,column.customCell(record,index));

  }

  //修复https://github.com/ant-design/ant-design/issues/1202

  if(isinvindrendercelltext(text)){

  文本=空

  }

  if (transformCellText) {

  text=transformCellText({ text,column,record,index });

  }

  const indentText=expandIcon?(

  跨度

  style={ { padding left:` $ { indent size * indent } px ` } }

  class={ ` $ { prefix cls }-缩进缩进级别-${indent}`}

  /

  ):空

  if (rowSpan===0 colSpan===0) {

  返回空

  }

  if (column.align) {

  TD道具。style={ text align:column。对齐,TD道具。style };

  }

  const单元类名=类名(类名,column.class,{

  [`${prefixCls}-cell-ellipsis`]:专栏。省略号,

  //如果有宽度,增加断行处理

  //https://github。com/ant-design/ant-design/issues/13825 #问题注释-449889241

  [` $ {前缀cls }-cell-break-word `]:列宽,

  });

  if (column.ellipsis) {

  if (typeof text===string) {

  TD道具。attrs。标题=文本;

  } else if (text) {

  //const { props:text props }=text;

  //if(文本道具文本道具。儿童类型的文本道具。children=== string ){

  //TD道具。attrs。标题=文字道具。儿童;

  //}

  }

  }

  返回(

  BodyCell class={cellClassName} {.tdProps}

  {indentText}

  {expandIcon}

  {text}

  /体细胞

  );

  }

  其中,自定义渲染是渲染函数,用来对表中的值进行自定义渲染。该函数接受四个参数,分别是文本、记录、索引和栏。

  antd官网也有自定义渲染的相关说明,如下

  以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。



推荐阅读
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 在 Vue 应用开发中,页面状态管理和跨页面数据传递是常见需求。本文将详细介绍 Vue Router 提供的两种有效方式,帮助开发者高效地实现页面间的数据交互与状态同步,同时分享一些最佳实践和注意事项。 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • Enhancing Theme Accessibility: Strategies and Best Practices for Inclusive Design ... [详细]
  • 如何将Python与Excel高效结合:常用操作技巧解析
    本文深入探讨了如何将Python与Excel高效结合,涵盖了一系列实用的操作技巧。文章内容详尽,步骤清晰,注重细节处理,旨在帮助读者掌握Python与Excel之间的无缝对接方法,提升数据处理效率。 ... [详细]
  • 本文详细解析了 Yii2 框架中视图和布局的各种函数,并综述了它们在实际开发中的应用场景。通过深入探讨每个函数的功能和用法,为开发者提供了全面的参考,帮助他们在项目中更高效地利用这些工具。 ... [详细]
  • 在不使用Webpack和单文件组件的情况下,构建Vue组件系统的可行性探讨 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 基于 Vue 和 Element UI 实现的简洁登录界面设计
    本文介绍了一种利用 Vue.js 和 Element UI 框架构建的简洁登录界面设计。该设计不仅注重用户体验,还确保了界面的美观性和易用性。通过合理的布局和组件配置,实现了高效、响应式的登录功能,适用于多种前端应用场景。 ... [详细]
  • 如何撰写初级和高级前端开发者的专业简历
    如何撰写初级和高级前端开发者的专业简历 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 本文详细介绍了在 Vue.js 前端框架中集成 vue-i18n 插件以实现多语言支持的方法。通过具体的配置步骤和示例代码,帮助开发者快速掌握如何在项目中实现国际化功能,提升用户体验。同时,文章还探讨了常见的多语言切换问题及解决方案,为开发人员提供了实用的参考。 ... [详细]
  • 在 Vue 中,可以通过 `ref` 属性精确控制滚动条的位置。具体来说,使用 `ref` 获取 DOM 元素,并通过事件处理函数(如点击事件)来调整滚动条的滚动距离。需要注意的是,直接使用 `$refs` 可能不会立即生效,因此需要确保在适当的生命周期钩子或异步操作中进行操作。此外,结合 `nextTick` 方法可以确保 DOM 更新完成后再执行滚动操作,从而实现更稳定的控制效果。 ... [详细]
author-avatar
fdsafjlkjgklg_431
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有