使用 v-html 仅渲染新数据的方法

Vue 3 中通过 refreactive 声明的变量,Vue 2 中 data 选项中声明的变量,都是响应式数据 。当这些数据对应的 HTML 字符串内容发生变更时,Vue 会检测到数据变化,自动触发 v-html 对应的视图重新渲染,更新渲染后的 HTML 内容。

在页面中渲染HTML时:

  • 若需要字符串更新时触发完整重渲染,请使用响应式存储数据
  • 若只需渲染新增部分而非全部内容,则采用数值存储数据
html 复制代码
<template>
  <div v-for="item in list" :key="item.id">
    <div v-html="item.html" :style="item.style"></div>
  </div>
  <div v-html="result"></div>
</template>

<script setup>
import { ref } from 'vue'
const list = ref([
  {
    id: 1,
    style: 'color: red',
    html: '<div class="mainTitle">本地公共服务与民生满意度调研报告</div>'
  },
  {
    id: 2,
    html: '<h1>一、调研样本基础特征分析</h1>'
  },
  {
    id: 3,
    html: '<h2>(一)样本规模与性别构成</h2>'
  },
  {
    id: 4,
    html: '<div>临时的一段话</div>'
  },
  {
    id: 5,
    isEcharts: true,
    echartsId: 'szz',
    html: '<div id="szz"></div>'
  },
])

let result = ''

// 当有新的值的时候 就直接往数组里面添加数据 这样就只会渲染新的数据
setTimeout(() => {
  list.value.push({
    id: 5,
    html: '666'
  })
}, 2000)
</script>
相关推荐
是上好佳佳佳呀1 小时前
【前端(十一)】JavaScript 语法基础笔记(多语言对比)
前端·javascript·笔记
莎士比亚的文学花园1 小时前
Linux驱动开发(3)——设备树
开发语言·javascript·ecmascript
CDN3602 小时前
排查实录:网站偶发502/504错误?360CDN回源超时配置与日志分析技巧
前端·数据库
之歆2 小时前
Day07_CSS盒子模型 · 样式继承 · 用户代理样式
前端·css
01漫游者2 小时前
JavaScript函数与对象增强知识
开发语言·javascript·ecmascript
DanCheOo2 小时前
AI 应用的安全架构:Prompt 注入、数据泄露、权限边界
前端·人工智能·prompt·安全架构
We་ct3 小时前
深度剖析浏览器跨域问题
开发语言·前端·浏览器·跨域·cors·同源·浏览器跨域
weixin_427771614 小时前
前端调试隐藏元素
前端
threelab4 小时前
Three.js 代码云效果 | 三维可视化 / AI 提示词
开发语言·javascript·人工智能
爱上好庆祝5 小时前
学习js的第五天
前端·css·学习·html·css3·js