轻松实现多行文本截断。

# 功能

可以选择限制行数与/或最大高度,无需指定行高。

支持在布局变化时自动更新。

支持展开/收起被截断部分内容。

支持自定义截断文本前后内容,并且进行响应式更新。

# Demo

最大行数 容器宽度 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另… 最大高度 容器宽度 展开内容 推荐 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

# 使用方法

$ npm i --save vue-clamp

对于基于 webpack 的项目,import 会自动引入未经转译的 ES Module 版本。请确保按如下指导配置相关工具。

#### Vue CLI v3

对于使用 Vue CLI 3 创建的项目,请确保将 vue-clamp 与 resize-detector 加入 vue.config.js 文件的 transpileDependencies 选项中:

module.exports = {

transpileDependencies: ['vue-clamp', 'resize-detector']

}

``` #### Vue CLI v2

如果使用的是 Vue CLI 2 的 `webpack` 模板,请按如下方式修改 `build/webpack.base.conf.js`:{

test: /\.js$/,

loader: 'babel-loader',include: [resolve('src'), resolve('test')]

include: [

resolve('src'),

resolve('test'),

resolve('node_modules/vue-clamp'),

resolve('node_modules/resize-detector')

]

}

在 Nuxt.js 中使用时,请确保将 `vue-clamp` 与 `resize-detector` 加入 `nuxt.config.js` 文件的 `build.transpile` 选项中:

module.exports = {

build: {

transpile: ['vue-clamp', 'resize-detector']

}

}

{{ text }}

```

# API

tag: string

生成的根元素的标签名。

默认值:div

autoresize: boolean

是否要自动适配根元素的尺寸变化。

默认值:false

max-lines: number

可以显示的最大行数

max-height: number|string

根元素的最大高度。数字值将被转换为 px 单位;字符串值将直接作为 CSS 属性 max-height 输出。

ellipsis: string

当文字被截断时需要显示的省略号字符串。

默认值:'…'

expanded: boolean

.sync

是否展开显式被截断的文本。

默认值:false

default

需要截断的文本。只能包含纯文本内容。

before

Slot 作用域:{ expand, collapse, toggle }

expand: function(): void - 展开被截断的文本。

collapse: function(): void - 收起展开后的文本。

toggle: function(): void - 切换被截断文本的展开状态。

在被截断的文本前显式的内容,可以包含任意类型内容。

after

Slot 作用域:与 before 相同。

在被截断的文本后显式的内容,可以包含任意类型内容。

Logo

前往低代码交流专区

更多推荐