Прошло много времени с тех пор, как You Da выпустила vite, и, видя стремительное развитие vite, я задумался и решил воспользоваться этим. В предыдущем раннем внедрении vue3 процесс отладки проекта был немного громоздким.Далее давайте посмотрим, как использовать vite для изучения vue3, и проанализируем, что vite сделал для нас. Все знают вите🐂🍺, так что это такое🐂🍺, где оно🐂🍺?
Посмотрим, что скажет Юда.
- Быстрый холодный старт
- Мгновенное горячее обновление
- Действительно компилируется по запросу
Hello world
Создайте проект и запустите
$ yarn create vite-app myViteApp && cd myViteApp && yarn && yarn dev
Структура каталогов
|-- public
|-- src
| |-- assets
| |-- components
| |-- App.vue
| |-- index.css
| |-- main.js
|-- .gitgnore
|-- index.html
|-- package.json
viteСгенерированная для нас структура каталогов очень проста, основные файлы иvue-cliфайлы одинаковые
viteПростой, эффективный, мощный, обучающийvue3Когда вам не нужны все виды окружающей среды
Что сделал для нас тихонечко Вите?
Давайте сначала откроем файл
- index.html
- src/main.js
index.htmlвведен вsrc/main.js,main.jsВнедрить App.vue и навесить его в html, процесс не простой, и браузерный компонент действительно рендерится.
Реализация этого шага неотделима от модулей Эс, и браузер проходит<script module>, генерировать HTTP-запрос для каждого импорта, служба vite dev перехватывает http-запрос, преобразует код и возвращает его в браузер для рендеринга.
Проще говоря, Vite компилирует статические ресурсы через узел и возвращает их в браузер для рендеринга.
принцип жизни
Исходная версия:v0.20.8
Обычно, когда мы вводим URL-адрес в браузере для посещения веб-сайта, браузер обращается к серверу, чтобы запросить соответствующий файл ресурсов, как всем известно. Итак, когда мы бежимyarn devПозже,viteначалdev serverЧтобы перехватить запрошенный нами ресурсный файл, чтобы страница, которую мы видим в браузере, на самом деле была html-файлом, обработанным vite.
- Исходный код:
<script type="module">
import "/vite/hmr" # 模块热更换
window.__DEV__ = true
window.process = { env: {"NODE_ENV":"development","BASE_URL":"/"}}
</script>
здесьimport "/vite/hmr", браузер перейдет кdev serverЗапрос hmr... фактически возвращает файл client.ts в исходном коде.
clientадрес файла/src/client/client.ts
этоclientЗапустите службу сокетов в браузере, примите серию инструкций в режиме реального времени, а затем обработайте логику ответа в соответствии с инструкциями.
-
подключено: подключение к сокету выполнено успешно
-
vue-reload: перезагрузка компонента
-
vue-rerender: повторный рендеринг компонента
-
обновление стиля: обновление стиля
-
style-remove: удаление стиля
-
js-update: обновление файла js
-
полная перезагрузка: перезагрузка страницы
-
Исходный код:
Серверная часть отвечает за отправку инструкций клиенту на различных этапах выполнения.
братьvue-reloadИсходный код примера выглядит следующим образом
viteСистема мониторинга файлов компонента .vue проанализирует и скомпилирует компонент vue после наблюдения за изменением компонента .vue и отправит сообщение клиенту.vue-reloadинструкции и отправить скомпилированный код клиенту.
Thank you
Когда друзья изучают фреймворк, недостаточно просто научиться использовать API, если у вас есть более глубокое понимание внутренней реализации фреймворка, будут разные выгоды. Относительно легко прочитать исходный код vite, и друзья могут найти его вgithubЗагрузите исходный код и попробуйте изучить его
дляviteЭто в основном конец объяснения.Спасибо за терпение.Если есть какие-то ошибки в тексте,поправьте меня.
я
Colin, вы можете отсканировать QR-код ниже, чтобы добавить меня в WeChat, комментарии и обмены.