vant4的TextEllipsis 文本省略,禁用展开,收起方法

本文介绍了如何在项目中使用Vant的TextEllipsis组件来实现实现多行文本的展示,同时禁用其内置的展开收起功能。作者分享了遇到的问题、解决方案,包括利用自定义action插槽来达到需求,并解释了解决原理。

一、需求:

实现多行文本展示,规定大于3行,显示省略号...和查看全部按钮;(并且考虑兼容性问题)

二、效果图:

三、实现:

如果自己写样式的话,可以对照这个链接实现CSS 实现多行文本“展开收起” - 掘金

但是我在对着改的时候,多少有的地方不一样,就没实现;后来我就换了种方式,用vant组件的TextEllipsis ,它实现了多行文本展示,规定大于3行,显示省略号...和查看全部按钮(下面的图中expand-text可以自定义展开时的文字,我改成了查看全部);

四、发生的问题以及解决问题的原理:

但是他有自带的展开收起效果,我的需求是不要这个功能的,查询官网,他并没有直接给出禁用展开收起的方法函数,所以在进行了各种尝试以及查看源码之后,当然我还是请教了前辈,最终得出了解决。

可以用官网提供的插槽action来解决:

代码实现:

<van-text-ellipsis
    rows="3"//控制几行显示省略号
    expand-text="查看全部"//注意:这里的文本字数要和你自定义的文本字数一样,为了初始化的时候给人家留出对应的文本位置
    :content="item.investmentStrategy"
>
    <template #action>
        <span @click.stop="showDetail(item.investmentStrategy)">查看全部</span>//这里是自定义的文本,就是原来官网的展开,我这里替换成了查看全部。
    </template>
</van-text-ellipsis>

解决问题的原理:根据源码可知:

他如果自定义了action方法,他就直接走你自定义的方法,如果你没有自定义,他就自己走他自己的方法。自定义走自己的方法之后,再在基础上套个父级,用原生的阻止默认行为,他才能生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值