Заменить компонент в vue. js - PullRequest
       0

Заменить компонент в vue. js

0 голосов
/ 20 февраля 2020

Я написал облегченную живую перезагрузку для vue. js. Оперативная перезагрузка для шаблонов компонентов (скомпилированных для рендеринга) работает должным образом. Я сталкиваюсь с дилеммой, чтобы заменить весь компонент без перезагрузки страницы.

У меня есть собственная функция require(name) {...} для браузера, чтобы изменить компонент:

const componentCache = {}
function modifyComponent(name, component, renderChanged, componentChanged) {
  if (!componentCache[name] || renderChanged) {
    componentCache[name] = {render: component.render, staticRenderFns: component.staticRenderFns}
    component.render = renderProxy
  }
  if (componentChanged) {
    location.reload()
  } else {
    forceUpdateComponents()
  }
  return component
}

Для отслеживания всех компонентов, я использую mixin {beforeCreate, beforeDestroy}, поэтому renderProxy и forceUpdateComponents работают как положено.

Как заменить весь компонент, если реквизиты, некоторые методы или вычисленные свойства были изменены без перезагрузки всей страницы?

Я мог бы использовать функциональный компонент в качестве прокси для «перезагрузки» обновленного компонента, но, возможно, есть более элегантный способ добиться этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...