当前位置:首页 > VUE

vue实现信息删减

2026-03-08 13:29:55VUE

Vue 实现信息删减的方法

使用过滤器(Filters)

在 Vue 2 中,可以通过过滤器对文本进行删减或格式化。例如,实现一个截断文本的过滤器:

Vue.filter('truncate', function (text, length, suffix) {
  return text.length > length ? text.substring(0, length) + (suffix || '...') : text;
});

在模板中使用:

<p>{{ longText | truncate(100, '...') }}</p>

使用计算属性(Computed Properties)

计算属性可以根据条件动态返回删减后的内容:

computed: {
  shortenedText() {
    const maxLength = 50;
    return this.longText.length > maxLength 
      ? this.longText.substring(0, maxLength) + '...' 
      : this.longText;
  }
}

模板中直接绑定:

<p>{{ shortenedText }}</p>

使用自定义指令(Directives)

通过自定义指令实现动态删减,适合需要交互控制的场景:

Vue.directive('truncate', {
  bind(el, binding) {
    const maxLength = binding.value || 100;
    const originalText = el.textContent;
    if (originalText.length > maxLength) {
      el.textContent = originalText.substring(0, maxLength) + '...';
      el.setAttribute('title', originalText); // 鼠标悬停显示全文
    }
  }
});

使用方式:

<p v-truncate="50">{{ longText }}</p>

使用第三方库

如果需要更复杂的功能(如按单词截断、多语言支持),可以使用如 vue-truncate-filterlodash_.truncate

import _ from 'lodash';
export default {
  computed: {
    truncatedText() {
      return _.truncate(this.longText, { length: 30 });
    }
  }
}

响应式删减(结合点击展开)

通过数据驱动实现点击展开/收缩功能:

data() {
  return {
    isExpanded: false,
    longText: '...'
  };
},
computed: {
  displayText() {
    return this.isExpanded 
      ? this.longText 
      : this.longText.substring(0, 100) + '...';
  }
}

模板部分:

vue实现信息删减

<p>{{ displayText }}</p>
<button @click="isExpanded = !isExpanded">
  {{ isExpanded ? '收起' : '展开' }}
</button>

注意事项

  • 性能优化:避免在长列表中使用复杂的删减逻辑,优先使用计算属性缓存结果。
  • 可访问性:通过 title 属性或 aria-label 提供完整信息。
  • 国际化:考虑不同语言的字符长度差异,避免硬编码截断长度。

标签: 信息vue
分享给朋友:

相关文章

vue实现答辩

vue实现答辩

Vue 实现答辩系统的关键步骤 项目初始化与配置 使用 Vue CLI 或 Vite 创建项目,安装 Vue Router 管理路由,Pinia/Vuex 进行状态管理。配置 ESLint 和 Pre…

vue实现slidetoggle

vue实现slidetoggle

Vue 实现 SlideToggle 效果 SlideToggle 是一种常见的交互效果,元素以滑动方式展开或收起。以下是几种实现方法: 使用 CSS Transition 和 v-show 通过…

vue 实现excel

vue 实现excel

Vue 实现 Excel 功能 前端导出 Excel 使用 xlsx 库可以轻松实现前端 Excel 导出功能。安装依赖: npm install xlsx 导出 Excel 示例代码: impo…

vue实现uuid

vue实现uuid

使用 uuid 库生成 UUID 在 Vue 项目中,可以使用 uuid 库来生成 UUID。安装依赖: npm install uuid 在 Vue 组件中使用: import { v4 as…

proxy实现vue

proxy实现vue

使用 Proxy 实现 Vue 响应式系统 Vue 3 的响应式系统基于 JavaScript 的 Proxy API,通过代理对象实现对属性的拦截和依赖追踪。以下是实现的核心逻辑: 创建响应式对象…

vue弹幕实现

vue弹幕实现

Vue弹幕实现方法 弹幕功能常见于视频直播或评论区,以下是基于Vue的实现方案,涵盖基础弹幕、动画控制及性能优化。 基础弹幕渲染 通过v-for动态渲染弹幕列表,结合CSS实现横向移动效果。…