[Прямая запись] Резюме выступления Ю Юси на VueConf 2019

Vue.js
[Прямая запись] Резюме выступления Ю Юси на VueConf 2019

Прошло много времени с тех пор, как я участвовал в первой конференции VueConf, выступление Юбо как всегда интересно ❤️, это его усилия для поддержания восторженной атмосферы сообщества конференции! Еще одна пасхалка в том, что Эван Ю привел на сцену свою семью и детей, это было действительно весело!

Юси Ю @ State of Vue

State of Vue

Статус разработки

У Chrome DevTools около 900 000 активных пользователей в неделю по сравнению с 1,6 миллионами у React. Эван рекомендует использовать Chrome DevTools для прогнозирования реальных данных разработчиков для проектов Vue. Vue имеет глобальное влияние и ведет соответствующую деятельность во многих странах.events.vuejs.orgНаходить. Статистические данные о состоянии JavaScript за 2018 год показывают, что он занимает первое место с точки зрения удовлетворенности интерфейсными фреймворками (91%) и является вторым по популярности интерфейсным фреймворком в данных Stack Overflow.

Vue 的良好反馈

команда

Сейчас у Vue 20 активных разработчиков, большая часть повседневной работы связана с Vue, он работает полностью независимо, а расходы в основном поступают от спонсоров, которые неуклонно росли в течение последних трех лет. Haoqun Jiang (@sodatea) постоянно поддерживает интерфейс командной строки и связанные с ним наборы инструментов.

3.0 Прогресс

Vue 3.0 目标

С конца 2018 года была объявлена ​​цель Vue.js 3.0.На самом деле, большинство функций были реализованы в начале этого года. Но в то же время мы также изучаем новейшие решения в отрасли.Vue использует функцию Proxy в 3.0, но IE 11 все еще не может ее поддерживать, но имеет определенную долю рынка.

Быстрее

  1. Object.defineProperty -> Proxy: прокси не нужно вносить слишком много изменений в исходный объект, что более эффективно
  2. Рефакторинг виртуального 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 раз больше скорости
  1. Дополнительные оптимизации времени компиляции

TypeScript

  • API класса ❌:
    • Первоначальной целью была поддержка TypeScript:thisПриведенный ниже тип атрибута доведен до такой степени, что его невозможно эффективно реализовать, а предложение Decorator очень нестабильно.
    • Class API не принес никаких новых преимуществ, кроме использования нативного, а значение наследования в ООП меньше используется в UI-слое.
  • Функциональный API:
    • Улучшенная поддержка вывода типов TypeScript (нет необходимости в каком-либо ручном объявлении типов, одновременно поддерживается набор кода), более гибкое повторное использование логики (отсутствие конфликтов имен, более четкие источники данных, такие как свойства, отсутствие дополнительных затрат на создание), Tree-Shaking дружелюбный, код может быть минимизирован
  • Последний RFC:github.com/vuejs/rfcs

Q&A

1. Каковы недостатки Vue.js 3.0?

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.