AvueAvue
首页
  • 开发指南
  • Skill开发
  • 在线测试工具
  • Form组件
  • Crud组件
  • Default组件
  • Data组件
  • Component组件
产品
工作台
授权
联系
2.x文档
个人支付接口
首页
  • 开发指南
  • Skill开发
  • 在线测试工具
  • Form组件
  • Crud组件
  • Default组件
  • Data组件
  • Component组件
产品
工作台
授权
联系
2.x文档
个人支付接口
  • Article 文章
  • Group 分组容器
  • Title 标题文本
  • CountUp 数字动画
  • Comment 评论
  • Chat 客服聊天
  • Captcha 验证码
  • Contextmenu 右键菜单
  • Clipboard 复制文本
  • DialogForm 弹窗表单
  • Draggable 拖拽
  • Export Excel 导入与导出
  • Flow 流程
  • FilterBuilder 高级筛选
  • FileManager 文件管理
  • QRCode 二维码
  • Iframe 嵌入页面
  • ImagePreview 图片预览
  • Login 登录组件
  • License 授权书
  • Print 打印
  • Screenshot 页面截图
  • Search 标签搜索
  • Sign 电子签名
  • TextEllipsis 超出文本省略
  • Tabs 选项卡
  • Tree 树型
  • Video 摄像头
  • Calendar 日历组合示例

Article 文章

avue-article 展示标题、摘要、正文与阅读信息,支持正文图片预览和自定义内容区域。

效果预览可直接操作下方示例

示例用字段映射展示一篇组件使用说明,点击正文图片可预览;下方显示图片或链接事件。

正在加载示例…
<template>
  <avue-article :data="article" :props="{ body: 'content' }" :title-level="2" show-info
                @image-click="eventText = '点击图片:' + $event.src"
                @link-click="eventText = '点击链接:' + $event.href">
    <template #footer="{ data }">
      <el-tag type="info">{{ data.category }}</el-tag>
    </template>
  </avue-article>
  <el-alert :title="eventText || '点击正文图片可预览,点击链接可查看事件'" type="info" :closable="false" />
</template>

<script setup>
import { ref } from 'vue'
const eventText = ref('')
const article = {
  title: '用结构化数据展示文章',
  meta: 'Avue 文档示例 · 组件使用说明',
  lead: '标题、摘要与正文分别传入;接口字段不一致时可用 props 映射。',
  category: '组件指南',
  content: `<p>将正文放入 <code>content</code> 字段,再通过 <code>props.body</code> 指定映射。</p>
    <h3>图片与链接</h3>
    <p>下面的图片来自本站,点击后可放大查看。</p>
    <p><img src="/images/logo.png" alt="Avue Logo" width="160"></p>
    <p><a href="/docs/installation.html">查看安装说明</a></p>`
}
</script>

Props

参数说明类型默认值
data文章数据object{}
props字段映射,优先于 option.propsobject{}
option兼容配置对象,当前使用其中的 propsobject{}
sanitizetrue 使用内置 HTML 过滤,函数自定义正文处理,false 原样展示boolean / functiontrue
preview点击正文图片后打开图片预览booleantrue
showInfo显示字数和预计阅读时长booleanfalse
titleLevel标题层级,最终限制在 1 至 6number1
maxWidth最大宽度,数字追加 px,字符串直接使用number / string''

默认文章字段为 title(标题)、meta(作者/时间等说明)、lead(摘要)、body(HTML 正文)。如接口返回 content,可传 :props="{ body: 'content' }"。字数为去除 HTML 标签和空白后的字符数,预计阅读时长按每分钟 400 字向上取整、至少 1 分钟。

sanitize 函数 (html) => html 会替代内置过滤,仅对可信且已处理的内容关闭过滤。默认过滤在浏览器 DOM 中执行;服务端渲染场景应保持一致的内容处理策略或使用客户端渲染边界。

Events

事件参数说明
image-click{ data, src, event }点击正文图片,无论是否开启预览都会触发
link-click{ data, href, event }点击正文链接;需要阻止跳转时调用 event.preventDefault()
preview-open{ data, src, index, images }图片预览打开
preview-close{ data }图片预览关闭

Slots 与 Methods

插槽参数说明
header{ data }替换标题和元信息
lead{ data }替换摘要
body{ data, content }替换正文,content 为处理后的 HTML
empty{ data }无正文且无 body 插槽时显示
footer{ data }文章末尾内容

通过 ref.closePreview() 可关闭图片预览。文章内容直接更新 data,不需要调用内部格式化方法。

最后更新:
贡献者: smallwei
Next
Group 分组容器