Прошло много времени с тех пор, как я участвовал в первой конференции VueConf, выступление Юбо как всегда интересно ❤️, это его усилия для поддержания восторженной атмосферы сообщества конференции! Еще одна пасхалка в том, что Эван Ю привел на сцену свою семью и детей, это было действительно весело!
Юси Ю @ State of Vue
Статус разработки
У Chrome DevTools около 900 000 активных пользователей в неделю по сравнению с 1,6 миллионами у React. Эван рекомендует использовать Chrome DevTools для прогнозирования реальных данных разработчиков для проектов Vue. Vue имеет глобальное влияние и ведет соответствующую деятельность во многих странах.events.vuejs.orgНаходить. Статистические данные о состоянии JavaScript за 2018 год показывают, что он занимает первое место с точки зрения удовлетворенности интерфейсными фреймворками (91%) и является вторым по популярности интерфейсным фреймворком в данных Stack Overflow.
команда
Сейчас у Vue 20 активных разработчиков, большая часть повседневной работы связана с Vue, он работает полностью независимо, а расходы в основном поступают от спонсоров, которые неуклонно росли в течение последних трех лет. Haoqun Jiang (@sodatea) постоянно поддерживает интерфейс командной строки и связанные с ним наборы инструментов.
3.0 Прогресс
С конца 2018 года была объявлена цель Vue.js 3.0.На самом деле, большинство функций были реализованы в начале этого года. Но в то же время мы также изучаем новейшие решения в отрасли.Vue использует функцию Proxy в 3.0, но IE 11 все еще не может ее поддерживать, но имеет определенную долю рынка.
Быстрее
Object.defineProperty -> Proxy: прокси не нужно вносить слишком много изменений в исходный объект, что более эффективно
Рефакторинг виртуального DOM: скорость запуска компонента в два раза выше, чем у 2.5, а параметры сгенерированного VNode согласованы. Но это все еще можно сделать лучше.Цель Virtual DOM — не просто скорость, его основная ценность — выражать состояние DOM в JavaScript, поэтому он на самом деле имеет свою цену. То есть дерево vdom необходимо перестраивать каждый раз при его обновлении, поэтому традиционный vdom является узким местом в производительности. Причина этого в том, что vdom — это первая логика выражений (гибкость), написанная на JSX, а не на языке шаблонов, поэтому некоторая информация не может быть выведена из содержимого шаблона.
Как максимально сочетать динамическое и статическое? То есть он совместим с гибкостью функции рендеринга и информацией, выраженной шаблоном.
Разделяйте внутренние и внешние узлы логики и рассматривайте каждый динамический узел как (фрагмент). Это заставляет дополнительные элементы динамического узла появляться только в структурных инструкциях, таких как v-if и v-for. Разделите отношения узлов на одно дерево блоков (Дерево блоков, ствол 😊), чтобы уменьшить ненужный обход.
Это делает производительность обновления vdom связанной с размером шаблона => связанной с количеством динамического контента (то есть, где его нужно изменить, только там, где его нужно изменить, и реализованы только минимальные операции)
Оптимизация скорости: 2.6.10 (36 мс), 3.0 (5,44 мс) примерно в 6 раз больше скорости
Дополнительные оптимизации времени компиляции
TypeScript
API класса ❌:
Первоначальной целью была поддержка TypeScript:thisПриведенный ниже тип атрибута доведен до такой степени, что его невозможно эффективно реализовать, а предложение Decorator очень нестабильно.
Class API не принес никаких новых преимуществ, кроме использования нативного, а значение наследования в ООП меньше используется в UI-слое.
Функциональный API:
Улучшенная поддержка вывода типов TypeScript (нет необходимости в каком-либо ручном объявлении типов, одновременно поддерживается набор кода), более гибкое повторное использование логики (отсутствие конфликтов имен, более четкие источники данных, такие как свойства, отсутствие дополнительных затрат на создание), Tree-Shaking дружелюбный, код может быть минимизирован
IE 11 по-прежнему будет его поддерживать, просто потребуется дополнительное время, чтобы понять это. Кроме того, недостатки 3.0 пытаются решить
2. Есть ли какие-то критические изменения в 3.0? Повышение эффективности?
В этом ценность RFC, всех критических изменений, смысла, стоящего за ними, и того, как с ними работать. Базовые модификации будут обновляться автоматизированными средствами. В то же время будет совместимая версия для снижения стоимости обновления.
3. React рендерит слайсы, Vue по-прежнему несет связанные с этим затраты?
Нарезка не является панацеей, и производительность может быть гарантирована только в экстремальных условиях. Внутренняя сложность высока, и эффект производительности не может быть удовлетворен после реализации.nextTickи т.д. код имеет деструктивные модификации (поскольку их может быть несколькоnextTick.
4. Каково будущее направление Vue?
Низкий порог, высокое значение. Пока кто-то использует его, он поддерживается и обновляется
5. Многие корпоративные пользователи используют React, потому что есть лучшая совместимость в направлении Native, будет ли в будущем Vue иметь лучшую совместимость с Native?
Один набор кода, несколько реализаций. Хотя у React есть React Native, у каждого производителя есть соответствующие контрмеры: у Google есть Flutter, у Apple — SwiftUI, и невозможно, чтобы все использовали парадигму разработки в компании. Как оказалось, Vue является независимым продуктом с открытым исходным кодом и не имеет корпоративной конкуренции.
Есть и небольшие программы в Китае, рекомендую DCloud для этогоuni-app.