使用 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>
相关推荐
To_OC1 天前
写了三遍 Todo List,我终于搞懂了 React 父子组件到底怎么通信
前端·javascript·react.js
勇往直前plus1 天前
Vue3(篇一) 核心概念——响应式模板语法与组件基础
前端·javascript·vue.js
咩咩啃树皮1 天前
第43篇:Vue3计算属性(computed)完全精讲——缓存机制、依赖计算、业务最优解
前端·vue.js·缓存
用户938515635071 天前
从零搭建 AI 日记助手:用 Milvus 向量数据库 + RAG 让机器读懂你的每一天
javascript·人工智能·全栈
徐小夕1 天前
花了一周,3亿tokens,我开源了一款 Word 文档智能审查平台,文稿自动质检+可视化分析,告别低效人工审核
前端·算法·github
a1117761 天前
坦克大战3D Three.js 3D (开源项目)
开发语言·javascript·3d
kyriewen1 天前
别再乱用useEffect了——你写的10个里有8个不该存在
前端·javascript·react.js
Ivanqhz1 天前
Rust &‘static str浅析
java·前端·javascript·rust
IT_陈寒1 天前
SpringBoot这个分页坑,我踩了三天才爬出来
前端·人工智能·后端
颜酱1 天前
05 | 召回前置准备:根据业务数据库生成各数据库(读取配置阶段)
前端·人工智能·后端