在方法运行时创建Vue组件/元素

问题描述 投票:0回答:1

我的组件内部有一个解析器方法,当该方法起作用时,我想从计算出的值中创建组件(甚至只是元素)。方法运行时是否可以创建组件或html元素?

javascript vue.js methods vue-component
1个回答
1
投票

方法工作时是否可以创建组件或html元素?

在JavaScript 使用同步代码]中是不可能的。 JavaScript是单线程的,并且在执行同步/长时间运行的代码时甚至阻止了浏览器渲染,更不用说Vue逻辑了,它重新渲染了模板并更新了DOM(really recommend this talk-很好地解释了问题)]

您基本上有两个选择:

  1. 将您的工作负载分成较小的块,一次仅处理一个,然后使用setTimeout(nextBatch, 0)安排“下一个块”处理。有关更多详细信息,请参见this SO question
  2. 您可以将计算工作转移到WebWorker,该线程在其自己的线程中运行,但是带来了新的挑战(例如,Vue应用程序和Web Worker之间的数据都需要在两侧进行序列化/反序列化)
© www.soinside.com 2019 - 2024. All rights reserved.