当前位置:首页 > VUE

vue实现摘要

2026-02-09 22:53:30VUE

Vue 实现摘要的方法

在Vue中实现摘要功能通常涉及文本截断、展开/收起交互等需求。以下是几种常见的实现方式:

使用CSS控制文本行数

通过CSS的-webkit-line-clamp属性可以轻松实现多行文本截断:

.truncate {
  display: -webkit-box;
  -webkit-line-clamp: 3; /* 控制显示行数 */
  -webkit-box-orient: vertical;
  overflow: hidden;
}

在Vue模板中应用:

<div :class="{ 'truncate': !isExpanded }">{{ longText }}</div>
<button @click="isExpanded = !isExpanded">
  {{ isExpanded ? '收起' : '展开' }}
</button>

使用计算属性动态截取文本

对于需要精确控制字符数的场景:

computed: {
  summary() {
    return this.isExpanded 
      ? this.fullText 
      : this.fullText.slice(0, 100) + '...';
  }
}

使用第三方库

vue-truncate-collapsed等专门库提供更丰富的功能:

import { Truncate } from 'vue-truncate-collapsed';

export default {
  components: { Truncate },
  template: `
    <truncate 
      :length="100" 
      :text="longText" 
      ellipsis="..."
      expandText="更多"
    />
  `
}

响应式摘要

根据容器宽度自动调整摘要长度:

methods: {
  updateSummary() {
    const containerWidth = this.$refs.container.offsetWidth;
    this.displayText = this.calculateOptimalText(containerWidth);
  }
},
mounted() {
  window.addEventListener('resize', this.updateSummary);
  this.updateSummary();
}

带富文本的摘要处理

处理包含HTML标签的内容时:

vue实现摘要

computed: {
  plainText() {
    return this.richText.replace(/<[^>]+>/g, '');
  },
  safeSummary() {
    const text = this.isExpanded ? this.plainText : this.plainText.substring(0, 150);
    return text + (this.isExpanded ? '' : '...');
  }
}

每种方法适用于不同场景,CSS方案适合纯UI展示,计算属性适合简单逻辑,第三方库适合复杂交互需求,响应式方案适合自适应布局,富文本处理则针对包含格式的内容。

标签: 摘要vue
分享给朋友:

相关文章

vue实现增删改

vue实现增删改

Vue 实现增删改查功能 Vue.js 是一个流行的前端框架,用于构建用户界面。以下是使用 Vue.js 实现增删改查(CRUD)功能的方法。 数据初始化 在 Vue 实例的 data 中初始化一个…

vue实现菜单调用

vue实现菜单调用

Vue 实现动态菜单的常见方法 基于路由配置生成菜单 Vue Router 的路由配置可以天然转化为菜单结构,适合权限与路由绑定的系统: // router/index.js const route…

vue 实现tabs

vue 实现tabs

Vue 实现 Tabs 组件的方法 使用动态组件和 v-for 在 Vue 中实现 Tabs 可以通过动态组件和 v-for 指令结合完成。定义一个 tabs 数组,包含每个标签的标题和对应的组件。…

vue实现tablegrid

vue实现tablegrid

Vue 实现 TableGrid 的方法 使用 Element UI 的 Table 组件 Element UI 提供了强大的 Table 组件,可以快速实现表格布局。安装 Element UI 后,…

vue实现新闻

vue实现新闻

Vue 实现新闻功能 使用 Vue 实现新闻功能通常涉及新闻列表展示、新闻详情页、分类筛选等模块。以下是实现的基本思路和代码示例。 新闻列表展示 通过 Vue 组件展示新闻列表,通常使用 v-for…

vue实现portal

vue实现portal

Vue 实现 Portal 功能 Portal 是一种将子节点渲染到父组件 DOM 层级之外的 DOM 节点的技术,常用于实现模态框、弹出层等需要脱离当前组件层级的场景。Vue 可以通过多种方式实现…