оригинальный:Plans for the Next Iteration of Vue.js
автор:Evan You время выдачи: 30 сентября 2018 г.
переводчик: Слушайте дождь в западном зданиивремя выдачи: 2018/10/5 (Пожалуйста, укажите источник)
Развернуть оригинал
На прошлой неделе на Vue.js в Лондоне я кратко рассказал о том, что будет в следующей основной версии Vue, В этом посте представлен подробный обзор плана.на прошлой неделе, вЛондонская конференция Vue.jsВыше я в общих чертах рассказал о том, что принесет следующая основная версия Vue. В этом посте будет подробное введение в программу.
Почему новая основная версия?
Развернуть оригинал
Vue 2.0 вышел ровно два года назад (как летит время!). За это время ядро осталось обратно совместимым с пятью минорными релизами. приведет к критическим изменениям. В то же время экосистема JavaScript и сам язык быстро развиваются. Существуют значительно улучшенные инструменты, которые могут улучшить наш рабочий процесс, и множество новых языковых функций, которые могут сделать его более простым, полным и более эффективным. решения проблем, которые Vue пытается решить. Что более интересно, так это то, что мы видим, что поддержка ES2015 становится базовой линией для всех основных вечнозеленых браузеров. Vue 3.0 стремится использовать эти новые языковые функции, чтобы сделать ядро Vue меньше, быстрее и мощнее. Vue 3.0 в настоящее время находится на стадии прототипирования, и мы уже реализовали среду выполнения, близкую к функциональному паритету с 2.x. Многие из перечисленных ниже элементов либо уже реализованы, либо подтверждены как выполнимые. на этапе разведки отмечены значком*.Vue 2.0 был выпущенПрошло два полных года(Время летит очень быстро!). В течение этого периода Vue выпустил 5 младших версий, которые сохраняли обратную совместимость ядра; мы накопили много идей, которые могли бы принести различные улучшения, но эти идеи были отложены, потому что они приведут к нарушению совместимости. В то же время экосистема JavaScript и сама по себе быстро развиваются. Многие усовершенствования инструментов улучшили наш рабочий процесс, а многие новые языковые функции открыли более простые, полные и эффективные решения проблем, которые Vue пытался решить. Что еще более интересно, мы видим, что поддержка ES2015 становится эталоном для всех основных браузеров. Цель Vue 3.0 — использовать эти новые языковые функции, чтобы сделать ядро Vue меньше, быстрее и мощнее.
Vue 3.0 уже находится на стадии прототипирования, и мы реализовали среду выполнения, которая почти эквивалентна по функциям версии 2.0.Многие из пунктов, перечисленных ниже, либо реализованы, либо подтверждены для реализации. Элементы, которые еще не реализованы или все еще находятся на стадии исследования, будут отмечены знаком «*».
деталь
Изменения API высокого уровня
Описание слова: В дополнение к синтаксису функции API рендеринга и слоту с областью действия остальные остаются неизменными или будут совместимы с совместимым пакетом путем дальнейшего построения 2.x.
Развернуть оригинал
Поскольку это новый мейджор, будут некоторые критические изменения. Тем не менее, мы серьезно относимся к обратной совместимости, поэтому мы хотим начать сообщать об этих изменениях как можно скорее. Вот запланированные в настоящее время общедоступные изменения API:- Template syntax will remain 99% the same. There may be small tweaks in scoped slots syntax, but other than that we have no plans to change anything else for templates.
- 3.0 will support class-based components natively, with the aim to provide an API that is pleasant to use in native ES2015 without requiring any transpilation or stage-x features. Most current options will have a reasonable mapping in the class-based API. Stage-x features such as class fields and decorators can still be used optionally to enhance the authoring experience. In addition, the API is designed with TypeScript type inference in mind. The 3.x codebase will itself be written in TypeScript, and providing improved TypeScript support. (That said, usage of TypeScript in an application is still entirely optional.)
- The 2.x object-based component format will still be supported by internally transforming the object to a corresponding class. Mixins will still be supported. *
- Top level APIs will likely receive an overhaul to avoid globally mutating the Vue runtime when installing plugins. Instead, plugins will be applied and scoped to a component tree. This will make it easier to test components that rely on specific plugins, and also make it possible to mount multiple Vue applications on the same page with different plugins, but using the same Vue runtime. *
- Наконец-то функциональные компоненты могут быть простыми функциями, однако теперь асинхронные компоненты нужно будет явно создавать с помощью вспомогательной функции.
- Часть, которая получит больше всего изменений, — это формат Virtual DOM, используемый в функциях рендеринга.В настоящее время мы собираем отзывы от основных авторов библиотек и будем делиться более подробной информацией, поскольку мы более уверены в изменениях, но пока вы этого не сделаете. в значительной степени полагаясь на написанные от руки (не JSX) функции рендеринга в вашем приложении, обновление должно быть достаточно простым процессом.
Так как это новый основной релиз, будут некоторые серьезные изменения совместимости. Однако мы очень серьезно относимся к обратной совместимости, поэтому надеемся начать сообщать об этих изменениях как можно скорее. Вот изменения общедоступного API, которые мы сейчас планируем:
- 99% синтаксиса шаблона останется прежним. У нас нет других запланированных изменений для шаблонов, кроме, возможно, некоторых изменений в синтаксисе слотов с заданной областью действия.
- Версия 3.0 будет изначально поддерживать компоненты на основе классов, не прибегая к какой-либо компиляции и различным функциям стадии, обеспечивая хороший опыт написания. Многие существующие (компонентные) элементы конфигурации будут иметь соответствующие разумные версии классов API. Различные функции этапа, такие как статические поля класса и декораторы, по-прежнему могут использоваться выборочно для улучшения опыта написания. Кроме того, общий API также будет разработан с учетом функций вывода типов TypeScript. Сама кодовая база 3.x будет написана на TypeScript с расширенной поддержкой TypeScript. (Тем не менее, использование TypeScript по-прежнему необязательно)
- Объектно-ориентированные форматы компонентов из серии 2.x по-прежнему будут поддерживаться, но будут внутренне преобразованы в соответствующий класс.
- Миксины по-прежнему поддерживаются. *
- Чтобы избежать модификаций среды выполнения Vue при установке плагинов, API верхнего уровня может подвергнуться серьезной переработке. В то время область действия плагина будет ограничена определенным деревом компонентов, что упростит тестирование тех компонентов, которые зависят от некоторых конкретных плагинов, а также позволит монтировать несколько плагинов, используя разные плагины на одной странице. — — но с использованием той же среды выполнения Vue — возможны приложения Vue. *
- Функциональные компоненты будут поддерживать чистые функции, однако асинхронные компоненты необходимо будет создавать явно с помощью вспомогательной функции.
- Самым большим изменением будет формат виртуального DOM в функции рендеринга. Сейчас мы собираем отзывы от авторов основных сторонних библиотек.После того, как мы будем более уверены в этих изменениях, мы предоставим более подробную информацию; хотя изменения велики, пока вы не в своем приложении.Если вы используете рукописный функции рендеринга (не JSX) для умеренного и интенсивного использования, тогда обновление после изменения должно быть проще.
Архитектура кода
Введение: больше превосходных внутренних модулей отделяют; TypeScript; легче вносить вклад в библиотеку кода.
Развернуть оригинал
Мы переписываем 3.0 с нуля, чтобы сделать архитектуру более чистой и удобной в сопровождении, в частности, пытаясь облегчить участие в ней. Мы разбиваем некоторые внутренние функции на отдельные пакеты, чтобы изолировать область сложности. Например, модуль наблюдателя станет отдельным пакетом со своим собственным общедоступным API и тестами. Обратите внимание, что это не влияет на API уровня фреймворка — вам не придется вручную импортировать отдельные биты из нескольких пакетов, чтобы использовать Vue. Вместо этого окончательный вариант Vue пакет собирается с использованием этих внутренних пакетов.The codebase is also now written in TypeScript. Although this will make proficiency in TypeScript a pre-requisite for contributing to the new codebase, we believe the type information and IDE support will actually make it easier for a new contributor to make meaningful contributions.
Decoupling the observer and scheduler into separate packages also allows us to easily experiment with alternative implementations of these parts. For example, we can implement an IE11 compatible observer implementation with the same API, or an alternative scheduler that leverages requestIdleCallback to yield to the browser during long updates.*
В начале написания 3.0 с нуля нашей целью было «достичь более чистой и удобной в сопровождении архитектуры, особенно упростить ввод кода». Чтобы изолировать сложность, мы разделили некоторые внутренние функции на отдельные пакеты. Например, модуль Observer будет отдельным пакетом со своим внешним API и собственными тест-кейсами, однако обратите внимание, что это не повлияет на API уровня фреймворка — вам не нужно вручную импортировать множество дополнительных пакетов из нескольких пакетов. Небольшие модули могут использовать Vue, тогда как окончательный пакет Vue будет предварительно собирать эти внутренние пакеты.
Кроме того, кодовая база теперь написана на TypeScript; хотя это сделало бы «знание TypeScript» необходимым условием для внесения вклада в новую кодовую базу, мы считаем, что наличие информации о типах наряду с поддержкой IDE облегчает новому участнику высказывание что на самом деле легче внести значимый вклад.
После разделения наблюдателя и планировщика на два отдельных пакета мы также можем поэкспериментировать с перестановкой этих двух пакетов с некоторыми альтернативными реализациями. Например, мы можем реализовать наблюдатель, совместимый с IE11 и имеющий тот же API, или другой эксплойт.requestIdleCallback
Планировщик для работы в долговременных обновлениях браузера.
Механизм мониторинга
Одним предложением: более полный, точный и эффективный, более отладочная трассировка ответов и API для создания реактивных объектов.
Развернуть оригинал
3.0 будет поставляться с реализацией наблюдателя на основе прокси, которая обеспечивает отслеживание реакции с полным охватом языка, что устраняет ряд ограничений текущей реализации Vue 2, основанной на Object.defineProperty:3.0 принесет реализацию наблюдателя на основе прокси, которая обеспечивает реактивность во всем диапазоне языков (JavaScript — аннотация), устраняяObject.defineProperty
Существуют некоторые ограничения, такие как:
- Мониторинг действий по добавлению и удалению атрибутов
- Модификация массивов на основе индексов, мониторинг модификаций .length
- Поддержка Map, Set, WeakMap и WeakSet
Развернуть оригинал
- Открытый API для создания наблюдаемых, который предлагает легкое и очень простое межкомпонентное решение для управления состоянием для сценариев малого и среднего масштаба. - Ленивое наблюдение по умолчанию. В версии 2.x любые реактивные данные, независимо от их размера, будут наблюдаться при запуске. Это может вызвать заметные накладные расходы при запуске приложения, если ваш набор данных огромен. В версии 3.x только данные используемый для рендеринга изначально видимой части вашего приложения, необходимо будет наблюдать, не говоря уже о том, что само наблюдение также намного быстрее. - Более точное уведомление об изменении. Пример: в версии 2.x принудительное добавление нового свойства с помощью Vue.set приведет к повторной оценке любого наблюдателя, зависящего от объекта. В 3.x только наблюдатели, которые полагаются на это конкретное свойство. будет уведомлен. - Неизменяемые наблюдаемые: мы можем создавать «неизменяемые» версии значения, которые предотвращают мутации даже во вложенных свойствах, за исключением случаев, когда система временно разблокирует их внутри. Этот механизм можно использовать для замораживания переданных реквизитов или деревьев состояний Vuex вне мутаций. Улучшенные возможности отладки: мы можем точно отслеживать, когда и почему повторный рендеринг компонента отслеживается или запускается с помощью новых хуков renderTracked и renderTriggered:Кроме того, этот новый наблюдатель имеет следующие особенности:
- Открытый API для создания наблюдаемых. Это обеспечивает легкое и чрезвычайно простое решение для управления состоянием между компонентами для приложений малого и среднего размера. (Аннотация: Перед этим мы можем пройти еще один
new Vue({data : {...}})
для создания так называемого observable здесь, кроме того, vuex фактически реализован именно так) - По умолчанию используется Ленивое наблюдение. В версии 2.x любые реактивные данные, независимо от их размера, будут отслеживаться при запуске. Если у вас большой объем данных, это может привести к значительному снижению производительности при запуске приложения. В версии 3.x будут отслеживаться только данные, используемые изначально видимой частью приложения, не говоря уже о том, что сама схема мониторинга на самом деле быстрее.
- Более точные уведомления об изменениях. Например: в серии 2.x через
Vue.set
Принудительное добавление нового свойства приведет к однократному выполнению всех функций наблюдения, которые зависят от этого объекта; в версии 3.x будут уведомлены только функции наблюдения, которые зависят от этого конкретного свойства. - Неизменяемый наблюдаемый: мы можем создать «неизменяемую» версию объекта, которая предотвращает его модификацию, включая его вложенные свойства, если только это ограничение не будет временно снято системой. Этот механизм можно использовать для замораживания объектов, переданных свойствам компонента и дереву состояний Vuex за пределами области мутации.
- Лучшая отладка: с помощью нового
renderTracked
а такжеrenderTriggered
Хук, мы можем точно отслеживать время срабатывания и время завершения повторного рендеринга компонента, а также почему.
Другие улучшения среды выполнения
Введение в одно предложение: меньше и быстрее; поддержка оптимизации встряхивания дерева; поддержка фрагментов и перекрестных рендеринга; поддержка пользовательских рендереров.
Развернуть оригинал
- Меньше: новая кодовая база разработана с нуля, чтобы быть дружественной к древовидной структуре. Такие функции, как встроенные компоненты (, ) и вспомогательные директивы среды выполнения (v-модель), теперь импортируются по запросу и могут древовидно трясти. постоянный базовый размер для новой среды выполнения составляет-
Меньше: эта новая кодовая база была разработана с учетом «встряхивания дерева». Такие, как встроенные компоненты (
<transition>
,<keep-alive>
), директивы утилиты времени выполнения (v-model
) и другие функции будут импортированы по запросу, поэтому они также могут быть "сотрясаемыми деревьями".Для этого нового времени выполнения его размер всегда останется под 10 кБ. Кроме того, сделав эти функции "сотрясаемыми деревом", мы можем предоставить больше встроенных функций без увеличения нагрузки на сеть, если они не используются.Аннотация: Оптимизация встряхивания дерева — это метод оптимизации для удаления неиспользуемого кода во время упаковки. У Google есть руководство, чтобы узнать об этом:Reduce JavaScript Payloads with Tree Shaking
-
Быстрее: в предыдущих тестах мы видели удвоение общей производительности, включая скорость монтирования и исправления виртуальных DOM (мы начали сInfernoТам мы узнали несколько трюков — Inferno в настоящее время является самой быстрой реализацией виртуальной DOM), а также скорость создания экземпляров компонентов и производительность мониторинга данных. В версии 3.0 время запуска вашего приложения будет сокращено вдвое.
-
Поддержка фрагментов и порталов. Несмотря на меньший размер, версия 3.0 также будет иметь встроенную поддержку фрагментов (т. е. позволяет компонентам иметь несколько корневых узлов) и порталов (т. е. позволяет выполнять рендеринг в другом месте DOM, а не внутри компонентов).
Аннотация: Что касается портала, вы можете понимать его как кросс-компонентный рендеринг или удаленный рендеринг,vue-portalЭто сторонняя реализация, о ней можно узнать, у фичи Fragments тоже есть сторонняя библиотека, но переводчик считает, что внутренняя реализация этой библиотеки не идеальна, называется vue-fragments, о ней можно узнать если ты заинтересован.
-
Усовершенствованный механизм слотов: все слоты, сгенерированные компилятором, будут в функциональной форме, и будут вызываться при вызове функции рендеринга дочернего компонента, пока идет рендеринг родительского компонента). Это приводит к тому, что зависимости в слоте (то есть аннотация данных) будут рассматриваться как зависимости дочернего компонента, а не текущего родительского компонента, что означает: 1) Когда содержимое слота изменяется, только дочерний компонент будет воссоздан Рендеринг; 2) При повторном рендеринге родительского компонента, если содержимое дочернего компонента не изменилось, дочерний компонент не нужно повторно рендерить. Изменения в этом механизме могут обеспечить более точное обнаружение изменений, что также может исключить ненужный повторный рендеринг.
-
Поддержка пользовательских рендереров (Renderer): этот API можно использовать для создания пользовательских рендереров, которые будут отображаться как «первоклассные граждане», и им больше не нужно разветвлять код Vue для реализации настройки путем модификации. Появление этого API облегчит таким проектам, как Weex и NativeScript, «рендеринг в нативные приложения», чтобы поддерживать актуальность Vue. Кроме того, это позволит чрезвычайно легко создавать собственные средства визуализации для различных целей.
Повышения, связанные с компилятором *
В одном предложении: «удобный для дерева» вывод; больше AOT-оптимизаций; улучшенный анализ ошибок; поддержка исходных карт.
Развернуть оригинал
- При использовании сборщиков, поддерживающих встряхивание дерева, шаблоны, использующие дополнительные функции, будут генерировать код, который импортирует эти функции с использованием синтаксиса модулей ES. Таким образом, неиспользуемые дополнительные функции удаляются из окончательного пакета. - Благодаря улучшениям в новой реализации Virtual DOM мы также можем выполнять более эффективную оптимизацию времени компиляции, такую как подъем статического дерева, подъем статического реквизита, подсказки компилятора во время выполнения для пропуска нормализации дочерних элементов, быстрые пути создания VNode и т. д. - Мы планируем переписать синтаксический анализатор, чтобы предоставлять информацию о местоположении в ошибках компиляции шаблона. Это также должно привести к поддержке исходной карты шаблона, и новый синтаксический анализатор может служить основой для интеграции сторонних инструментов, таких как eslint-plugin-vue и IDE. языковые услуги.- Если используется упаковщик, который поддерживает «оптимизацию встряхивания дерева», дополнительные функции, используемые в шаблоне, будут импортированы через синтаксис модуля ES в сгенерированном коде; в упакованном файле эти неиспользуемые функции будут импортированы. ".
- Благодаря улучшениям, внесенным новой реализацией виртуального DOM, мы можем выполнять некоторые более эффективные оптимизации времени компиляции, такие как подъем статического дерева, подъем статического реквизита; подсказки компилятора, позволяющие избежать нормализации дочерних элементов; предоставление быстрых путей создания VNode и т. д.
- Мы планируем переписать синтаксический анализатор, чтобы при возникновении ошибки при компиляции шаблона он мог выдавать информацию о местонахождении ошибки, в дополнение к этому он также мог привнести поддержку карты исходников для шаблонов, также он мог поддерживать сторонние такие инструменты, как
eslint-plugin-vue
и функция языковых служб IDE.
Совместимость с IE 11*
Одним предложением: IE 11 будет поддерживаться, но будет поддерживаться в отдельной сборке, но эта версия будет иметь те же ограничения, что и реактивный механизм Vue 2.x.
Развернуть оригинал
Новая кодовая база в настоящее время предназначена только для вечнозеленых браузеров и предполагает базовую нативную поддержку ES 2015. Но, увы, мы знаем, что многим нашим пользователям по-прежнему необходимо поддерживать IE 11 в обозримом будущем. исключение для Proxies. Мы планируем реализовать альтернативный наблюдатель с тем же API, но с использованием старого доброго ES5 Object.defineProperty API. Отдельная сборка Vue 3.x будет распространяться с использованием этой реализации наблюдателя. Однако эта сборка будет подлежат тем же предупреждениям об обнаружении изменений, что и Vue 2.x, и, следовательно, не полностью совместимы с «современной» сборкой 3.x. Мы понимаем, что это создает некоторые неудобства для авторов библиотек, поскольку им необходимо знать о совместимости для две разные сборки, но мы обязательно предоставим четкие рекомендации по этому поводу, когда дойдем до этого этапа.Новая кодовая база в настоящее время предназначена только для основных браузеров, и мы предполагаем, что все они поддерживают ES2015. Но эй, мы также знаем, что есть много пользователей, которым все еще нужно будет поддерживать IE11 в обозримом будущем. За исключением прокси-сервера, большинство функций ES2015 можно использовать в IE11 с помощью транспиляции или оболочек. В наших планах реализовать отдельный альтернативный наблюдатель с тем же API, но на основе старомодногоObject.defineProperty
API; затем выпустите его, создав отдельную сборку Vue 3.x, которая использует эту реализацию, но эта отдельная сборка по-прежнему будет иметь проблемы с обнаружением изменений с Vue 2.x, поэтому на самом деле это не версия A, которая полностью совместима с 3. Икс. Мы также понимаем, что это вызовет некоторые неудобства у авторов сторонних библиотек, поскольку им необходимо учитывать проблемы совместимости между двумя разными версиями, но когда мы перейдем к этому этапу, мы обязательно предоставим четкое руководство.
как мы достигнем нашей цели
Хотя мы объявляем сегодня, у нас пока нет четких сроков, на данный момент у нас есть шаги, чтобы добраться туда:
1. Попросите оставить отзыв о прототипе времени выполнения
Развернуть оригинал
This is the phase we are in right now. Currently, we already have a working runtime prototype that includes the new observer, Virtual DOM and component implementation. We have invited a group of authors of influential community projects to provide feedback for the internal changes, and would like to make sure they are comfortable with the changes before moving forward. We want to ensure that important libraries in the ecosystem will be ready at the same time when we release 3.0, so that users relying on those projects can upgrade easily.Это также сцена, которую мы в настоящее время в. В настоящее время у нас есть рабочий прототип времени выполнения, который включает в себя новый наблюдатель, новый виртуальный DOM и новую реализацию компонентов. Мы пригласили команду авторов популярных сообществ, чтобы собрать свои отзывы об этих изменениях низкого уровня, в надежде, что они могут легко адаптироваться к этим изменениям, прежде чем двигаться вперед. Мы надеемся, что когда выпущены 3.0, эти ключевые трехсторонние библиотеки в экосистеме VUE также готовы к синхронизации, чтобы пользователи, которые полагаются на эти проекты, могут легко обновить.
2. Запрашивайте отзывы общественности через RFC
Развернуть оригинал
Once we gain a certain level of confidence in the new design, for each breaking change we will be opening a dedicated RFC issue which includes:Scope of the change;
- Reasoning behind the change: what do we gain, and what tradeoffs are being made;
- Upgrade path: can it be introduced in a completely backwards-compatible fashion, via a removable compatibility layer, or via codemods?
- We will anticipate public feedback from the wider community to help us consolidate these ideas.
После того, как у нас будет некоторая степень уверенности в этом новом дизайне, мы установим специальный RFC-канал для каждой изменения не совместимости, в основном, включая следующую информацию:
- масштаб изменения;
- Плюсы и минусы изменений: что мы получим и чего это будет стоить.
- Путь обновления для этого изменения: полная обратная совместимость, внедрение съемного слоя совместимости или изменение кода?
3. Введите функции совместимости в 2.x и 2.x-следующий
Развернуть оригинал
We are not forgetting about 2.x! In fact, we plan to use 2.x to progressively accustom users to the new changes. We will be gradually introducing confirmed API changes into 2.x via opt-in adaptors, and 2.x-next will allow users to try out the new Proxy-based observer.The last minor release in 2.x will become LTS and continue to receive bug and security fixes for 18 months when 3.0 is released.
Мы не забудем 2.x! Мы планируем позволить пользователям постепенно адаптироваться к этим новым изменениям в версии 2.x. Мы будем постепенно вводить проверенные изменения API в 2.x с помощью некоторых адаптеров, кроме того, в следующем выпуске 2.x пользователи также смогут опробовать новый наблюдатель на основе прокси.
Последняя выпущенная второстепенная версия 2.x будет выпуском LTS, и в нее будут поступать исправления ошибок и безопасности в течение 18 месяцев после выпуска 3.0.
4. Альфа-стадия
Развернуть оригинал
Next, we will finish up the compiler and server-side rendering parts of 3.0 and start making alpha releases. These will mostly be for stability testing purposes in small greenfield apps.На следующем этапе мы закончим части компилятора и рендеринга на стороне сервера версии 3.0 и начнем работу над альфа-версией. Основной целью этих работ является тестирование стабильности в некоторых небольших приложениях.
5. Бета-стадия
Развернуть оригинал
During beta phase, our main goal is updating support libraries and tools like Vue Router, Vuex, Vue CLI, Vue DevTools and make sure they work smoothly with the new core. We will also be working with major library authors from the community to help them get ready for 3.0.На этапе бета-тестирования наша главная цель — обновить соответствующие библиотеки поддержки, такие как Vue Router, Vuex, Vue CLI, Vue DevTools, чтобы обеспечить их бесперебойную работу с этим новым ядром. Кроме того, мы будем помогать разработчикам сторонних библиотек через сообщество и работать с ними, чтобы приветствовать появление 3.0.
6. Фаза RC
Развернуть оригинал
Как только мы посчитаем API и кодовую базу стабильными, мы перейдем к этапу RC с заморозкой API. На этом этапе мы также будем работать над «совместимой сборкой»: сборкой 3.0, которая включает уровни совместимости для API 2.x. Эта сборка также будет поставляться с флагом, который вы можете включить, чтобы выдавать предупреждения об устаревании для использования API версии 2.x в вашем приложении. Совместимую сборку можно использовать в качестве руководства по обновлению вашего приложения до версии 3.0.Когда мы посчитаем, что различные API и кодовые базы стабильны, мы перейдем к этапу RC, и API будет исправлен. На этом этапе мы также создадим «совместимую сборку»: сборку 3.0, которая включает уровень совместимости, совместимый с API 2.x, и предоставляет флаг, который вы можете включить, чтобы разрешить ему предупреждать, где ваше приложение использует 2.x API о том, что этот API устарел, поэтому эту «совместимую версию» также можно использовать в качестве руководства при обновлении до 3.0.
7. Соберите версию IE 11
The last task before the final release will be the IE11 compatibility build as mentioned above.
Последняя задача перед окончательным выпуском — вышеупомянутая версия, совместимая с IE 11.
8. Окончательный выпуск
Развернуть оригинал
Честно говоря, мы пока не знаем, когда это произойдет, но, скорее всего, в 2019 г. Опять же, мы больше заботимся о выпуске чего-то надежного и стабильного, а не о конкретных датах. мы взволнованы тем, что будет дальше!Честно говоря, мы еще не знаем, когда доберемся до этого этапа, но это может быть в 2019 году. Это еще раз показывает, что мы ищем солидности, а не конкретной даты. Было проделано много работы, но мы очень рады этим новым функциям!