当前位置: 首页 > news >正文

vue2中遇到的问题与解决方案(自用)


1 、在vue2中怎么能成功渲染字符串中存在自定义组件

比如,前端样式定义后由接口返回想渲染的样式,如果此时直接使用v-html,那么vue的自定义组件或者ui框架的组件是会被直接引用不能编译成功


解决方案:

此时想到vue官网使用render函数和动态组件实现

动态组件

<template><div v-html="compiledContent"></div>
</template><script>
import Vue from 'vue'const compileTemplate = (templateString, propsData)=>{const Ctor = Vue.extend({template: `<div id="temporary">${templateString}</div>`,data() { return propsData; }});let vm;document.body.insertAdjacentHTML('beforeend', '<div id="temp"></div>');try {vm = new Ctor().$mount('#temp');return vm.$el.innerHTML;} finally {if(vm){vm.$destroy();}document.getElementById('temporary')?.remove();// document.getElementById('temp')?.remove();}
}
export default {name: 'DynamicHtmlRenderer',props: ['content'],computed: {compiledContent(){console.log(this.content)return this.content ? compileTemplate(this.content,{}) : '';}},
}
</script>

vue文件中使用

<template><component :is="dynamicComponentName" :content="item"></component>
</template>
<script>
import renderHtml from '@/components/renderHtml.vue';
export default {components: {renderHtml},data(){return {//此时red是全局组件templateString: `<div>关注点:<br/>部分地市资源申请后使用不足。119个集团申请成员储备活动,54个集团有效开展(拓展<red>7525</red>户)。忻州、晋城、临汾请提升使用效率。</div>`}},computed: {dynamicComponentName() {return 'renderHtml';}}
}
</script>

这里我遇到一个问题就是Vue.extend、Vue.compile 不存在,此时也引入了vue-template-compiler 插件,发现因为Vue.extend、Vue.compile  这2个方法在vue的完整的版本里面才有,如果想在运行中存在的话 要在vue.config.js 中设置,如下:

第一种如果报错限制了resolve 就使用第二种

2、insertAdjacentHTML()  

将文本解析为 element 元素,并将结果节点插入到DOM树中的指定位置。它不会重新解析它正在使用的元素,因此它不会破坏元素内的现有元素。这避免了额外的序列化步骤,使其比直接使用innerHTML操作更快

使用

element.insertAdjacentHTML(position,text)

相关文章:

vue2中遇到的问题与解决方案(自用)

1 、在vue2中怎么能成功渲染字符串中存在自定义组件 比如&#xff0c;前端样式定义后由接口返回想渲染的样式&#xff0c;如果此时直接使用v-html&#xff0c;那么vue的自定义组件或者ui框架的组件是会被直接引用不能编译成功 解决方案&#xff1a; 此时想到vue官网使用render函…...

CF2043b-B. Digits

题目链接 题意&#xff1a;给定两个整数n、d&#xff0c;要求找出排列成n!个d之后的数可以被1-9中奇数整除的数 题解&#xff1a; 主要是考察分类讨论&#xff1a; 被3整除&#xff0c;当d能被3整除时一定成立或者n > 3&#xff0c;当n > 3时n!一定包含因数3 被5整除&a…...

ultralytics库RT-DETR代码解析

最近读了maskformer以及maskdino的分割头设计,于是想在RT-DETR上做一个分割的改动,所以选择在ultralytics库中对RTDETR进行改进。 本文内容简介: 1.ultralytics库中RT-DETR模型解析 2. 对ultralytics库中的RT-DETR模型增加分割头做实例分割 1.ultralytics库中RT-DETR模型解…...

(七)- plane/crtc/encoder/connector objects

1&#xff0c;framebuffer/plane Rockchip RK3399 - DRM framebuffer、plane基础知识 - 大奥特曼打小怪兽 - 博客园 2&#xff0c;crtc Rockchip RK3399 - DRM crtc基础知识 - 大奥特曼打小怪兽 - 博客园 3&#xff0c;encoder/connector/bridge Rockchip RK3399 - DRM en…...

基于STM32的四轴飞行器的控制系统(论文+源码)

1.系统设计 本次基于stm32单片机的四轴飞行器控制系统主要包括硬件和软件这两大部分&#xff0c;其中硬件部分是基于单片机的四轴飞行器控制系统实现的基石&#xff0c;其中主要STM32单片机负责整个系统功能的实现&#xff1b;NRF24L01无线模块负责对四轴飞行器的远程控制&…...

混合精度训练(Mixed Precision Training)中为什么在训练过程中不直接使用bf16进行权重更新?中英双语

中文版 为什么在训练过程中不直接使用 bf16 进行权重更新&#xff1f; 在深度学习的训练过程中&#xff0c;我们通常使用 混合精度训练&#xff08;Mixed Precision Training&#xff09;来提高训练效率&#xff0c;减少内存占用。虽然 bf16&#xff08;Brain Floating Point…...

【java】HashMap的实现原理

目录 1. 说明2. 哈希函数3. 桶数组4. 哈希冲突解决5. 动态扩容6. 查找、插入和删除操作 1. 说明 1.HashMap是一个基于哈希表的数据结构&#xff0c;它实现了Map接口。2.HashMap允许使用null键和null值&#xff0c;并且不保证映射的顺序。 2. 哈希函数 1.HashMap使用哈希函数…...

FCM32F103C8T6开发指引

打了块板&#xff0c;没有STM芯片了&#xff0c;于是&#xff0c;换了块FCM32F103C8T6.原来的工程直接编译&#xff0c;不能仿真&#xff0c;提示M3,M4核不兼容&#xff0c;但是&#xff0c;用jflash是可以直接把bin文件烧录进去的&#xff0c;也可以正常运行起来。 但为了方便…...

Python世界:人生苦短,我用Python

Python世界&#xff1a;人生苦短&#xff0c;我用Python 前言Python优势Python缺点 前言 几句话说清&#xff0c;我们为啥要用Python&#xff1f; Python设计之初心&#xff0c;是为了解决编程门槛&#xff0c;让大家更聚焦业务实现&#xff0c;而非编程细节。当前人工智能火…...

【从零开始入门unity游戏开发之——C#篇43】C#补充知识——值类型和引用类型汇总补充、变量的生命周期与性能优化、值类型和引用类型组合使用

文章目录 一、值类型和引用类型汇总补充1、值类型和引用类型汇总2、值类型和引用类型的区别3、简单的判断值类型和引用类型 二、变量的生命周期与性能优化1、**栈和堆的区别**2、**变量生命周期**3、**垃圾回收&#xff08;GC&#xff09;机制**4、**代码示例与优化**4.1. 临时…...

从论文到实践:Stable Diffusion模型一键生成高质量AI绘画

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;编程探索专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年12月24日10点02分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文源地址有视频&#xff1a; 链接h…...

项目管理:用甘特图 “导航” 项目全程

项目全程管理是一个复杂而又系统的过程&#xff0c;它涵盖了从项目启动到结束的各个阶段&#xff0c;包括规划、执行、监控和收尾等一系列活动。 项目全程管理能够确保项目按时交付、控制成本、提高质量以及满足客户需求。通过有效的管理&#xff0c;项目团队可以避免资源浪费…...

v3.0.8- 「S+会员」新增专属运动秀,试试新穿搭吧- 与「好友」

v3.0.8 - 「S会员」新增专属运动秀&#xff0c;试试新穿搭吧 - 与「好友」互动支持前往对方所在的「在线运动房」 - 「运动秀工坊」新增智能背景抠图 - 「体育竞技」匹配中可以看到我和对手的装备 - 多项界面体验和性能优化 v2.0.17 - 班级运动场新增运动秀展示 - 班级玩法&…...

9-Gin 中自定义 Model --[Gin 框架入门精讲与实战案例]

在 Gin 框架中自定义 Model 通常指的是定义你自己的数据结构&#xff0c;这些结构体&#xff08;Structs&#xff09;将用来表示数据库中的表、API 请求的参数或响应的数据格式。下面是如何在 Gin 中创建和使用自定义 Model 的基本步骤。 自定义 Model 定义结构体 首先&…...

【VBA】EXCEL - VBA 创建 Sheet 表的 6 种方法,以及注意事项

目录 1. 创建一个新工作表&#xff0c;并将其添加到工作簿的末尾 2. 创建一个新工作表&#xff0c;并命名它 3. 创建一个新工作表&#xff0c;并将其插入到指定位置 4. 检查是否已有同名工作表&#xff0c;避免重复创建 5. 创建多个工作表 6. 基于现有模板创建新工作表 …...

数据库中,group by 和partition by:数据分组和数据分区的区别

数据库中&#xff0c;group by 和partition by&#xff1a;数据分组和数据分区的区别 在大规模数据处理和分析的场景中&#xff0c;对数据进行分区和分组处理是非常常见的场景。 为了实现这一操作&#xff0c;在一些主流的关系型数据库管理系统中&#xff0c;提供了group by 和…...

【linux学习指南】Ext系列文件系统(四)路径分区链接

文章目录 &#x1f320;⽬录与⽂件名&#x1f320;路径解析&#x1f320;路径缓存&#x1f320;挂载分区&#x1f309; ⽂件系统总结 &#x1f320;软硬连接&#x1f309; 硬链接&#x1f309; 软链接&#x1f309; 软硬连接对⽐&#x1f309;软硬连接的⽤途&#xff1a; &…...

深度学习中的参数初始化

深度学习中的参数初始化主要是指初始化神经网络中的权重和偏置。权重和偏置通常分开初始化&#xff0c;偏置通常初始化为零或较小的常数值。 没有一种万能的初始化技术&#xff0c;因为最佳初始化可能因具体架构和要解决的问题而异。因此&#xff0c;尝试不同的初始化技术以了解…...

wpf 基于Behavior库 的行为模块

Microsoft.Xaml.Behaviors 是一个用于WPF&#xff08;Windows Presentation Foundation&#xff09;的行为库&#xff0c;它的主要作用是允许开发者在不修改控件源代码的情况下&#xff0c;为控件添加自定义的行为和交互逻辑。行为库的核心思想是通过定义可重用的行为组件&…...

【每日学点鸿蒙知识】导入cardEmulation、自定义装饰器、CallState状态码顺序、kv配置、签名文件配置

1、HarmonyOS 无法导入cardEmulation&#xff1f; 在工程entry mudule里的index.ets文件里导入cardEmulation失败 可以按照下面方式添加SystemCapability&#xff1b;在src/main/syscap.json(此文件需要手动创建&#xff09;中添加如下内容 {"devices": {"gen…...

别再手动调position了!用MATLAB tiledlayout搞定双坐标轴图(R2019b+保姆级教程)

MATLAB双坐标轴绘图革命&#xff1a;tiledlayout全攻略 在科研绘图和工程可视化领域&#xff0c;双坐标轴图表是展示多维度数据的利器。传统MATLAB绘图方法需要手动计算position属性&#xff0c;代码冗长且难以维护。R2019b版本引入的tiledlayout功能彻底改变了这一局面&#x…...

告别Keil4!手把手教你用Keil C51 V9.61编译51单片机代码(附最新激活方法)

51单片机开发效率革命&#xff1a;Keil C51 V9.61全栈升级指南 当你的51单片机项目编译进度条像蜗牛爬行时&#xff0c;当老旧开发环境频繁卡顿崩溃时&#xff0c;开发者们都在期待一场彻底的效率革命。Keil C51 V9.61的发布&#xff0c;正是针对这些痛点的技术回应——它不仅将…...

告别Visio!用WPF+MVVM打造属于你自己的业务流程设计器(附完整源码)

基于WPFMVVM构建企业级业务流程设计器的实战指南 在当今企业数字化转型浪潮中&#xff0c;业务流程管理系统(BPM)已成为提升运营效率的核心工具。传统Visio等绘图工具虽然功能强大&#xff0c;但往往难以与企业内部系统深度集成&#xff0c;且缺乏动态交互能力。本文将带你从零…...

ClaudeCode安装与使用全攻略

一、安装 Claude Code 1. 安装 Claude Code 1.1 安装 Git 根据需求选择对应的安装方式&#xff1a; https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git windows 版本下载地址&#xff1a; https://git-scm.com/install/windows 1.2 安装 node…...

渲染天空、日落与行星:给前端初学者的实时大气可视化入门指南

渲染天空、日落与行星&#xff1a;给前端初学者的实时大气可视化入门指南 你有没有想过&#xff0c;为什么浏览器里的一片蓝天看起来那么“假”&#xff1f;为什么游戏中的夕阳总像打了层柔光滤镜&#xff0c;却少了那种空气里浮动的微粒感&#xff1f;又或者&#xff0c;当你拖…...

从碰撞到安全路径:在MATLAB里为你的机械臂规划一条无碰撞轨迹(附完整代码)

七轴机械臂无碰撞轨迹规划实战&#xff1a;从MATLAB基础到高级避障策略 机械臂在复杂环境中的自主运动一直是工业自动化和服务机器人领域的核心挑战。想象一下&#xff0c;当一台七轴机械臂需要在布满障碍物的空间里精准抓取物品时&#xff0c;如何确保它不会撞上周围的工作台、…...

手把手复现:用GCC编译选项关闭栈保护,一步步演示缓冲区溢出攻击(附完整代码)

从零构建缓冲区溢出攻击实验&#xff1a;GCC编译选项与漏洞利用实战指南 缓冲区溢出攻击作为系统安全领域的经典课题&#xff0c;至今仍在各类CTF竞赛和实际渗透测试中频繁出现。对于刚接触底层安全的研究者而言&#xff0c;亲手复现一次完整的溢出攻击过程&#xff0c;远比阅读…...

告别FTP!用Go写的Filebrowser,一个命令搞定Windows/Linux跨平台文件管理

告别FTP&#xff01;用Go语言构建的Filebrowser&#xff0c;一条命令实现全平台文件管理革命 在服务器管理和跨平台文件共享的日常工作中&#xff0c;传统FTP工具早已显露出诸多不便&#xff1a;复杂的客户端配置、不直观的界面操作、安全隐患频发。而现代开发者需要的&#xf…...

OpCore-Simplify终极指南:10分钟自动化完成黑苹果配置的完整教程

OpCore-Simplify终极指南&#xff1a;10分钟自动化完成黑苹果配置的完整教程 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果配置而…...

告别上位机:用STM32的CAN总线直接对话Maxon EPOS4驱动器(附完整通信代码)

STM32直连Maxon EPOS4&#xff1a;CAN总线电机控制实战指南 在机器人关节控制、智能小车驱动等高精度运动控制场景中&#xff0c;Maxon EPOS4系列驱动器凭借其卓越性能成为工业级首选。但传统依赖PC上位机&#xff08;如EPOS Studio&#xff09;的调试方式&#xff0c;严重制约…...