如何使用Vue自定义指令实现UUID生成与滚动监听,实现Tab表格的吸顶效果?

更新于
2026-10-02 02:57:34
1阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计302个文字,预计阅读时间需要2分钟。

如何使用Vue自定义指令实现UUID生成与滚动监听,实现Tab表格的吸顶效果?

javascript生成UUID工具- 输入: utils/index.js- 功能: 生成UUID- 输出格式: {string}- 导出: generateUUID(withSeparator=true)- 实现:javascriptfunction generateUUID(withSeparator=true) { let d=new Date().getTime(); if (window.performance && typeof window.performance.now==='function') { d +=performance.now(); // 使用高精度时间 } return withSeparator ? '' + d : d.toString(16);}

utils/index,.js

/** * 生成UUID * @param withSeparator 是否有分割符 * @returns {string} */ export function generateUUID(withSeparator = true) { let d = new Date().getTime() if (window.performance && typeof window.performance.now === 'function') { d += performance.now() } const tpl = withSeparator ? 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' : 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx' return tpl.replace(/[xy]/g, function(c) { const r = (d + Math.random() * 16) % 16 | 0 d = Math.floor(d / 16) return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16) }) }

创建一个generate-uuid/index.js自定义指令文件

import { generateUUID } from '@/utils' const generateUuid = { inserted(el, binding) { const { value } = binding if (!value) { const hasUUID = generateUUID(value) el.setAttribute('data-uuid', hasUUID) if (!hasUUID) { el.parentNode && el.parentNode.removeChild(el) } } } } generateUuid.install = function(Vue) { Vue.directive('generate-uuid', generateUuid) } export default generateUuid

main.js引入

import GenerateUUID from '@/directive/generate-uuid' Vue.use(GenerateUUID)

页面使用

<el-table v-generate-uuid="false" >

使用uuid元素方法

const topRow = this.$refs.multipleTable const hash = topRow.$el.dataset.uuid const tableHeader = document.querySelector(`.el-table[data-uuid="${hash}"] .el-table__header-wrapper`) if (tableHeader) { tableHeader.style.width = topRow.$el.getBoundingClientRect().width + 'px' }

总结

到此这篇关于vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码的文章就介绍到这了,更多相关vue滚动监听tab表格吸顶内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

如何使用Vue自定义指令实现UUID生成与滚动监听,实现Tab表格的吸顶效果?

本文共计302个文字,预计阅读时间需要2分钟。

如何使用Vue自定义指令实现UUID生成与滚动监听,实现Tab表格的吸顶效果?

javascript生成UUID工具- 输入: utils/index.js- 功能: 生成UUID- 输出格式: {string}- 导出: generateUUID(withSeparator=true)- 实现:javascriptfunction generateUUID(withSeparator=true) { let d=new Date().getTime(); if (window.performance && typeof window.performance.now==='function') { d +=performance.now(); // 使用高精度时间 } return withSeparator ? '' + d : d.toString(16);}

utils/index,.js

/** * 生成UUID * @param withSeparator 是否有分割符 * @returns {string} */ export function generateUUID(withSeparator = true) { let d = new Date().getTime() if (window.performance && typeof window.performance.now === 'function') { d += performance.now() } const tpl = withSeparator ? 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' : 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx' return tpl.replace(/[xy]/g, function(c) { const r = (d + Math.random() * 16) % 16 | 0 d = Math.floor(d / 16) return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16) }) }

创建一个generate-uuid/index.js自定义指令文件

import { generateUUID } from '@/utils' const generateUuid = { inserted(el, binding) { const { value } = binding if (!value) { const hasUUID = generateUUID(value) el.setAttribute('data-uuid', hasUUID) if (!hasUUID) { el.parentNode && el.parentNode.removeChild(el) } } } } generateUuid.install = function(Vue) { Vue.directive('generate-uuid', generateUuid) } export default generateUuid

main.js引入

import GenerateUUID from '@/directive/generate-uuid' Vue.use(GenerateUUID)

页面使用

<el-table v-generate-uuid="false" >

使用uuid元素方法

const topRow = this.$refs.multipleTable const hash = topRow.$el.dataset.uuid const tableHeader = document.querySelector(`.el-table[data-uuid="${hash}"] .el-table__header-wrapper`) if (tableHeader) { tableHeader.style.width = topRow.$el.getBoundingClientRect().width + 'px' }

总结

到此这篇关于vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码的文章就介绍到这了,更多相关vue滚动监听tab表格吸顶内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

如何使用Vue自定义指令实现UUID生成与滚动监听,实现Tab表格的吸顶效果?