Где я могу проверить Vue. js сгенерированные функции рендеринга? - PullRequest
1 голос
/ 16 января 2020

Одна точка останова исключения привела меня к функции рендеринга, сгенерированной компилятором шаблона Vue для одного из моих Vue компонентов.

Это показалось мне " Эй, теперь я понимаю как работает эта система шаблонов!", но я не обратил внимания на то, где это было в дереве веб-пакетов.

Теперь я хотел бы проверить код для других компонентов и, возможно, установить Точка останова здесь и там, но когда я просматриваю активные источники javascript на панели отладчика браузера, я не могу найти ни одного из этого сгенерированного кода.

1 Ответ

1 голос
/ 16 января 2020

Похоже, что скомпилированные функции рендеринга можно найти в дереве исходников в папке . в webpack://. Может быть немного сложно найти правильный, хотя есть несколько файлов для каждого .vue файла. Другие файлы будут содержать другие биты компонента. Файл, содержащий функцию render, должен быть достаточно очевидным, когда вы его найдете, он должен начинаться с var render = function() {. Например, в одном из моих тестовых приложений я вижу функцию render для app.vue в webpack:///./src/app.vue?91e4, хотя эта последняя часть будет отличаться.

Если вы хотите вставить точку останова для вашего собственного компонента тогда вы можете проникнуть через метод. Это также может быть быстрым способом найти нужный файл.

В шаблоне вызовите метод, я его назвал breakpoint:

{{ breakpoint() }}

Затем в метод:

breakpoint () {
  debugger
  return ''
}

Затем вы можете пройти один уровень вверх по стеку, чтобы увидеть скомпилированную функцию render.

Конечно, вам не обязательно использовать debugger заявление для этого. Вы можете просто установить точку останова браузера подходящим способом (или ввести точку, если она еще не существует). Пока метод вызывается из шаблона, он должен давать вам доступ к скомпилированной функции render.

Чтобы установить точку останова таким образом, вам просто нужно перейти к соответствующему файлу .vue в webpack:// раздел дерева исходников. Этот файл обычно легко найти непосредственно под заголовком webpack://.

Обновление:

Как только вы нашли файл, содержащий функцию render, используя После этого вы можете найти файл в дереве исходных кодов, используя 'Показать в боковой панели' :

Screenshot of context menu

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