Углубленный фреймворк кросс-энд разработки Hengping 2020 Edition

uni-app

Снова апрель, и прошло много времени с момента последнего релиза.Углубленный фреймворк кросс-энд разработкиПрошел целый год.

В этом году мини-программы добились больших успехов с точки зрения пользовательского масштаба и коммерциализации. Ежедневно активные пользователи мини-программ WeChat превысили 300 миллионов, а ежемесячные активные пользователи мини-программ Alipay, Baidu и ByteDance также превысили 300 миллионов.

Что касается области разработки малых программ, в этом году также произошли большие изменения. Среда разработки изменилась с простой разработки апплета WeChat на многотерминальную структуру, которая стала стандартной конфигурацией, и дальнейшее повышение эффективности разработки стало настоятельной потребностью разработчиков.

В этом годуmpvueостановить обновление,Taroначать исследоватьtaro next,uni-appПродукты и экология продолжают улучшаться, и WeChat недавно запустила новое мобильное приложение, которое поддерживает мини-программы H5 и WeChat.kboneРамка...

В прошлогодних развернутых комментариях многие ветераны ушли с арены, а некоторые новички привлекли внимание, поэтому настало время новой волны выпусков 2020 года.

Оценка целевого скрининга

Кросс-энд фреймворк — это большие инвестиции.В соревновании каждого фреймворка на протяжении не одного года многие фреймворки постепенно отказывались от разработчиков из-за недостаточных вложений.uni-appиtaroОпираясь на непрерывные крупномасштабные инвестиции, он стал основным направлением рынка.

taroОснованная на стабильной версии, она также недавно была запущенаtaro next, эти две версии совершенно разные и на этот раз будут оцениваться отдельно.

kboneНесмотря на то, что фреймворк вышел не так давно, официально он все-таки был выпущен WeChat, и многие люди обратили на него внимание, так что в этот раз мыkboneВключите цели оценки.

Таким образом, объекты этой оценки (в порядке времени публикации):

  • Нативная разработка WeChat
  • таро, производство Jingdong Bump Lab, официальный адрес сайта:taro.jd.com/
  • uni-app, созданный DCloud, адрес официального сайта:uniapp.dcloud.net.cn
  • kbone, созданный командой Tencent WeChat, адрес официального сайта:wechat-miniprogram.github.io/kbone/docs/

В дополнение к фактическим измеренным данным, таким как беговая производительность, эта оценка должна собирать данные публично через официальный веб-сайт фреймворка и github, Nuggets, классную комнату Tencent и другие трехсторонние сообщества, насколько это возможно, в надежде дать вам всестороннюю основу для оценки. .

Реализация функции

taroиuni-appЭто типичная многотерминальная структура, которую можно опубликовать на всех терминалах. иkboneПоддерживаются только апплет WeChat и H5.

taroиuni-appЧасто используемые интерфейсы и компоненты инкапсулированы в кросс-энд API и кросс-энд компоненты. Спецификации компонентов соответствуют спецификации апплета WeChat, а некоторые платформы имеют уникальные API. Эти две платформы также имеют решения:

  • Таро: поддержкаСмешанный с кодом апплета, вы можете вызвать новый API апплета, который не был инкапсулирован фреймворком, путем смешивания
  • уни-приложение: поддержкаУсловная компиляция, вы можете свободно вызывать новые API и компоненты каждой платформы в блоке кода условной компиляции.

taroиuni-appВсе API и компоненты каждой платформы апплета могут вызываться без ограничений.

kboneпродолжать использоватьwebпривычки развития, используяhtmlэтикетки иjs api; Когда дело доходит до специфичных для WeChat API, вы можетеprocess.env.isMiniprogramОцените среду, а затем напишите нативный код WeChat. заhtmlВстроенные компоненты WeChat (например,swiper), нужно использоватьwx-componentмаркировать или использоватьwx-префикс, такие встроенные компоненты будут обернуты слоем пользовательских компонентов, что приведет к соответствующему снижению производительности.

В дополнение к интерфейсам и компонентам мы возьмем апплет WeChat в качестве примера, чтобы найти несколько типичных возможностей для сравнения поддержки фреймворка:

Рамка taro uni-app kbone
Пользовательские компоненты WeChat ⭕️ ⭕️ ⭕️
сторонний плагин ⭕️ ⭕️
Загрузка подпакета ⭕️ ⭕️ ⭕️
sitemap ⭕️ ⭕️ ⭕️
wxs ⭕️
облачная разработка ⭕️ ⭕️ ⭕️

Дополнительные инструкции:

  • Если в проекте Taro есть ссылки на собственные сторонние компоненты апплета, проект больше не будет иметь возможности многотерминального преобразования.Например, если сторонние компоненты апплета WeChat используются, проект может быть преобразовано только в апплет WeChat, а затем передано в апплет WeChat.Другие платформы Yicheng будут недействительны.Подробнее см.официальный сайт таро
  • Если вы используете пользовательские компоненты WeChat в uni-приложении, оно поддерживает компиляцию и публикацию на 4 платформах App/H5/апплета WeChat/апплета QQ.Подробности см.официальный сайт уни-приложения
  • Основание для таро, не поддерживающего wxs:#2959
  • Причины, по которым kbone не поддерживает сторонние плагины WeChat:#58; основание для отказа от поддержки wxs:#129
  • Облачная разработка поддерживается на платформе WeChat, поддерживаются все три фреймворка, но taro/kbone поддерживает только платформу апплетов WeChat, поддерживает uni-appApp/H5/小程序Все платформы используют облачную разработку, подробности см. ниже.serverless/云开发глава.

wxsЭто важный инструмент для повышения производительности, за исключением апплета WeChat.wxsКроме того, есть AlipaySJS, БайдуFilter, эти передовые технологииuni-appПолностью поддерживается. Ссылаться на:Тайна wxs, как uni-приложение может использовать его для значительного повышения производительности

Из сравнения вышеперечисленных функций: WeChat native ~ uni-app > таро > kbone

Производительность (апплет WeChat)

Мы продолжаем использовать тестовую модель прошлого года, чтобы увидеть, улучшилась ли производительность каждой среды разработки за последний год. Подробности следующие:

  • Контент для разработки: разработка сложного длинного списка, имитирующего домашнюю страницу апплета Weibo, поддержка всплывающего обновления, переворачивания страниц и т. д.

  • Интерфейс выглядит следующим образом:

  • Версия для разработчиков: всего было разработано 5 версий, включая нативную версию WeChat, версию таро, версию uni-app и версию kbone.cliОн установлен по умолчанию.

  • Текущая стабильная версия таро — это версия 2.0, но кросс-фреймворк таро некст продвигается недавно, поэтому мы протестировали данные как таро 2.0, так и таро некст на основе одного и того же кода реакции.

  • Тестовый код с открытым исходным кодом (Адрес репозитория Github: https://github.com/dcloudio/test-framework),Советы. Если некоторые учащиеся считают, что код теста написан неправильно, отправьте PR илиIssus

  • Тестовые модели: Redmi 6 Pro, стабильная версия MIUI 11.0.5 (последняя версия), WeChat версии 7.0.12 (последняя версия)

  • Тестовая среда: перед тем, как каждая платформа начнет тестирование, завершите каждый процесс приложения и очистите память, чтобы убедиться, что среда тестовой машины в основном одинакова; каждый раз считывайте статические данные с локального компьютера, чтобы скрыть различия в сети.

Мы возьмем приведенный выше имитационный апплет Weibo в качестве примера, чтобы протестировать два момента, которые подвержены проблемам с производительностью: загрузка длинного списка и отклик на большое количество лайков компонентов.

загрузка длинного списка

Список имитации Weibo — это список со многими компонентами, такой сложный список оказывает большее давление на производительность и очень подходит для тестирования производительности.

Требуется точное время от запуска подтягивающей загрузки до обновления данных и завершения рендеринга страницы. Человеческого зрительного хронометража явно недостаточно, мы применяем метод встраивания программ и формулируем следующий хронометраж:

  • Время начала синхронизации: событие взаимодействия запускается до назначения кадра, например: начало функции загрузки подтягивания (onReachBottom)
  • Время окончания времени: рендеринг страницы завершен (начало функции обратного вызова WeChat setData)

Советы:setDataНачало функции обратного вызова можно считать моментом завершения рендеринга страницы, т.к. WeChatsetDataопределяется следующим образом (Спецификация WeChat):

Метод тестирования: начиная с пустого списка на странице, программа автоматически запускает подтягивающую загрузку, каждый раз добавляя 20 списков и записывая время, затрачиваемое за один раз; запуская N раз подтягивающей загрузки непрерывно при фиксированной интервалы, чтобы страница достигла 20 * N списков. Рассчитайте среднее время, затрачиваемое с момента запуска подтягивания до завершения рендеринга.

Результаты теста следующие:

Описание: Возьмем в качестве примера список из 400 микроблогов, начиная с пустого списка на странице, инициируем подтягивающую загрузку каждую 1 секунду (добавляется 20 новых микроблогов), записываем время, затрачиваемое на один раз, и останавливаем после запуска 20 раз (страница достигает 400 Weibo), посчитайте среднее время этих 20 раз, и в результате получится, что WeChat является нативным в этих 20 раз.触发上拉 -> 渲染完成Среднее время составляет 538 миллисекунд, самое быстроеuni-appсоставляет 446 мс, самый медленныйkboneсоставляет 4057 мс

При первом взгляде на эти данные вы можете растеряться, не волнуйтесь, ниже есть подробная инструкция.

Объяснение 1: Почему данные теста taro next/kbone неполные?

так какtaro nextиkboneПринята динамическая схема рендеринга, которая значительно увеличивает количество страниц, когда страница сложная и содержит много компонентов.domКоличество узлов даже превышает количество узлов WeChat.domОграничение на количество узлов (следующая тревожная информация). Мы измеряли на Redmi 6 Pro, когда компонентов страницы более 600,taro next,kboneВнедренная имитация приложения Weibo сообщит о ненормальной работе и прекратит рендеринг (белый экран страницы).Поэтому тестовые данные этих двух тестовых фреймворков будут неполными, когда будет много компонентов. Это также означает, что эти 2 фреймворка нельзя использовать, когда компонентов страницы слишком много.

dom limit exceeded please check if there's any mistake you've made

Кроме того, на официальном сайте kbone есть следующее введение:

kbone использует некоторую потерю производительности в обмен на более полную поддержку веб-функций.

Следовательноtaro next,kboneТестовые данные, очевидно, иtaro 2.0,uni-appНе на порядок.

Если ваше приложение представляет собой сценарий с длинным списком, тоtaro next,kboneЯвно не подходит.

Примечание 2. Почему тестовые данные показывают, что производительность uni-app немного выше, чем у собственной платформы WeChat?

Эта проблема была объяснена в прошлогодней оценке. Во избежание путаницы для новых студентов, вот еще одно объяснение.

Нативная структура WeChat отнимает много времени в основном вsetDataПри вызове, если разработчик не проводит оптимизацию отдельно, каждый раз будет передаваться большой объем данных;uni-app,taroзвонятsetDataсделать это автоматически передdiffВычислить, каждый раз передавая только измененные данные.

Например, текущая страница содержит фрагменты данных 20. Когда срабатывает подтягивающая загрузка, вновь загружаются фрагменты данных 20. В это время, когда собственный фреймворк проходит следующий тест кода,setDataбудет передано 40 единиц данных

data: {
    listData: []
},
onReachBottom() { //上拉加载
    let listData = this.data.listData;
    listData.push(...Api.getNews());//新增数据
    this.setData({
        listData
    }) //全量数据,发送数据到视图层
}

Используя нативный фреймворк WeChat, разработчики могут сами оптимизировать и упростить передачу данных (каждый раз передается всего 20 штук измененных данных), например, модификация выглядит следующим образом:

data: {
    listData: []
},
onReachBottom() { //上拉加载
    // 通过长度获取下一次渲染的索引
    let index = this.data.listData.length;
    let newData = {}; //新变更数据
    Api.getNews().forEach((item) => {
        newData['listData[' + (index++) + ']'] = item //赋值,索引递增
    }) 
    this.setData(newData) //增量数据,发送数据到视图层
}

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

По результатам испытаний видно, что:

  • После ручной оптимизации разработчиками собственный фреймворк WeChat может добиться более высокой производительности;
  • uni-appПо сравнению с оригинальным WeChat производительность близка, что на порядок, а по мере увеличения объема данных потребление производительности увеличивается незначительно, с 438 до 454, изменение всего 16 миллисекунд.
  • taro 2.0По мере увеличения объема данных увеличивается потеря производительности, с 595 до 790, происходит изменение почти на 200 миллисекунд;
  • taro nextиkboneНапротив, разрыв относительно велик.

этот результат иwebразвитие аналогичное,webТакже есть нативные js-разработки,vue,reactрамки и т.д. Если не проводить специальную оптимизацию, производительность веб-страниц, написанных на нативном js, зачастую не так хороша, какvue,reactпроизводительность кадра.

именно потому, чтоVue,reactФреймворк отличный, производительность хорошая, опыт разработки хороший, поэтому использование нативной разработки js постепенно сокращается.

Объяснение 3. Почему данные тестов производительности за этот год отличаются от прошлогодних?

Внимательные студенты обнаружат, что тот же тестовый мобильный телефон, тот же тестовый код, почему данные о производительности в этом году будут лучше, чемданные прошлого годаПроизошло существенное увеличение?

  • taro, uni-app и WeChat native, данные трех фреймворков были значительно улучшены.Когда записей 400, оптимизация занимает не менее 300 миллисекунд.
  • uni-app и оптимизированный нативный WeChat, с увеличением объема данных трудоемкое изменение данных не очевидно, но в прошлом году это был очевидный линейный рост

На самом деле, сравнивая данные нативного проекта WeChat, можно сделать вывод, что в 2019 году WeChat провел значительную оптимизацию производительности для выполнения небольших программ.

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

Сложный длинный список, загружающий следующую страницу, вывод оценки: собственная разработка WeChat (оптимизация вручную) ~uni-app> Собственная разработка WeChat (не оптимизированная вручную) ~taro 2.0 > taro next > kbone

Нравится скорость отклика компонента

Для компонента в длинном списке, такого как похожий компонент, могут ли состояния «не нравится» и «нравится» изменяться во времени при нажатии? является оценочной точкой этого теста.

Метод испытания:

  • Выберите микроблог и нажмите кнопку «Нравится», чтобы переключить статус «Нравится» (понравилось выделено, не понравилось серым),
  • Нравится кнопкаonclickФункция начинает считать в начале,setDataФункция обратного вызова запускает и заканчивает отсчет времени;

Проведите несколько тестов на Redmi 6 Pro и найдите среднее значение, результаты следующие:

Примечание. То есть, когда количество списков равно 400, требуется 26 миллисекунд, чтобы кнопка «Нравится» изменилась от щелчка до состояния приложения, изначально разработанного WeChat.

Описание данных результатов теста:

  • Причина, по которой тестовые данные taro next/kbone неполны, та же, что и выше: когда компонентов много, страница перестает отображаться.
  • Производительность taro 2.0, uni-app и WeChat native на аналогичном компоненте близка, но существует большой разрыв в производительности между taro next и kbone, что также вызвано динамической средой выполнения.

Оценка производительности обновления данных компонента:uni-app ~ taro 2.0 > taro next > kbone

Подводя итог, этот тест производительности провел 2 теста, загрузку длинного списка и обновление состояния компонента, синтезируя 2 эксперимента, выводы следующие:

Нативная разработка WeChat (ручная оптимизация) ~uni-app> Собственная разработка WeChat (не оптимизированная вручную) ~taro 2.0 > taro next > kbone

Производительность (апплет Alipay)

В этом году был добавлен тест производительности на основе апплета Alipay, а также протестированы два сценария загрузки лонг-листа и отклика подобных компонентов, как описано выше.

Сценарий 1: загрузка длинного списка

количество списков taro 2.0 uni-app
200 1954 850
400 3155 1012
600 4284 1119
800 5278 1258
1000 6555 1452

Сценарий 2. Ответ компонента «Мне нравится»

количество компонентов taro 2.0 uni-app
200 38 33
400 34 45
600 37 37
800 40 39
1000 51 48

Советы:

  • Поскольку kbone не поддерживает другие домашние апплеты, на этот раз тестируются только данные о производительности taro 2.0 и uni-app.
  • Основываясь на принципе реализации таро некст, производительность таро некст будет намного хуже, чем у таро 2.0.Здесь представлены только данные таро 2.0 (измеренные данные апплета WeChat в предыдущей главе также подтвердили этот вывод )
  • Когда апплет Alipay выполняет автоматическое тестирование производительности, включите параметр компиляции component2 в конфигурации проекта.

Благодаря приведенным выше тестовым данным, рабочие характеристики апплета Alipay, uni-app> taro 2.0

Кросс-энд поддержка

Все эти три фреймворка предназначены для решения проблемы изоморфизма платформ, поэтому необходимо перекрестное сравнение.

taroиuni-appОн относительно зрелый и поддерживает все основные платформы. kbone поддерживает только апплет WeChat и веб-терминал. Давайте сравнимtaroиuni-app.

Мини программная платформа

taroиuni-appВсе поддерживают WeChat, Alipay, Baidu, апплет ByteDance, и функции могут быть в основном согласованы.

Обе стороны имеют много больших заводских корпусов,taroЕсть небольшие программные кейсы таких компаний, как JD.com, Huolala и TaopiaoPiao.uni-appИзвестны случаи небольших программ от таких компаний, как Tencent, Huawei, vivo, Lenovo и China Talent Network.

Платформа приложения

  • Способность

taroУровень согласования с движком апплета WeChat низок, и многие функции требуют, чтобы разработчики выполняли нативную разработку для iOS и Android. Например, общий трехсторонний вход в систему, оплата, совместное использование и другие возможности на стороне приложения,taroНе упаковано.

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

  • представление

taroиспользуется в приложенииreact nativeХотя пользовательский интерфейс уровня рендеринга является родным, его производительность была низкой при взаимодействии в реальном времени и операциях пользовательского интерфейса с высокими требованиями к ответу.Потеря связи между уровнем js и уровнем представления заставляет многих разработчиков чувствовать себя беспомощными.

uni-appМеханизм приложения также предоставляет разработчикам решение с двойным выбором собственного механизма рендеринга и механизма апплета, а также предоставляетrenderjsтехнология и поддержкаwxs,bindingxи другие технологии, он решает проблему потери связи между уровнем js и уровнем представления и имеет лучшую производительность в операциях пользовательского интерфейса с высокими требованиями к ответу. Например, вот такая анимация холста:

  • опыт разработки

Разработчикам таро необходимо создавать собственную среду разработки для iOS/Android, что довольно громоздко (Официальный текст выглядит следующим образом):

Если вы раньше не сталкивались со средой разработки Android, будьте готовы к довольно утомительному процессу. Пожалуйста, внимательно прочитайте следующие инструкции и выполняйте операции по настройке строго в соответствии с документацией.

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

Основная привлекательность использования кросс-платформенной разработки заключается в повышении эффективности.Если разработка приложения выполняется тремя командами инженеров, включая фронтенд, iOS и Android, эффективность на самом деле очень низкая.

Кроме того,uni-appОн также предоставляет uni applet sdk, инструмент, который может помочь родным приложениям быстро создать собственную платформу апплета. Это не предусмотрено другими фреймворками.

Платформа H5

Платформа Taro H5 добилась большего прогресса за последний год, и ее удобство использования значительно улучшилось. но по сравнению сuni-app, поддержка wxs и компонентов апплета по-прежнему отсутствует.

Быстрое приложение

taroВремя поддерживать быстрые приложенияuni-appутро.

Однако в 2020 году произошли некоторые изменения в разработке быстрых приложений.uni-appВ ответ на новую ситуацию предоставляются 2 решения для выпуска быстрых приложений (обе версии в настоящее время находятся на обслуживании сообщества):

  • версия quickapp-vue:Разрабатывайте быстрые приложения с помощью Vue. В этом решении доминирует Xiaomi, но пока оно не поддерживается Huawei Quick Apps.
  • quickapp-light version: Быстрое приложение (облегченная версия) на основе архитектуры апплета, см. подробностиwww.hellohub.cn. В этом решении доминирует Huawei, но Xiaomi Quick App пока его не поддерживает.

Кросс-конечная гибкость

Кросс-энд разработка неотделима от условной компиляции. Потому что унификация не может использоваться для уничтожения характеристик каждой платформы.

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

taro,uni-appиkboneподдерживаются вjsпроход кодаprocess.envОцените платформу, а затем напишите код для конкретной платформы.

taroДополнительная поддержка многоконечного кодирования файлов с унифицированным интерфейсом и использование в файлах стилей.ifdefУсловная компиляция.

uni-appПолностью условно компилируемый, каталоги, файлы, конфигурации, компоненты, js, css, все можно передатьifdefУсловная компиляция.

Краткий вывод о поддержке кросс-энда:uni-app > taro > kbone

опыт разработки

taro,uni-app,kboneОба поддерживаютcliрежим, который может быть разработан в основных интерфейсных инструментах, и в основном поставляется с библиотекой синтаксических подсказок d.ts. Поддерживаются все три фреймворкаvueилиreactПопулярный синтаксис фреймворка, богатая цепочка инструментов IDE, идеальная раскраска, проверка и форматирование.

По сравнению с нативным WeChat опыт разработки этих трех сред разработки лучше.

Но в измерении инструментов разработки фреймворк, который значительно выше, этоuni-app, чья производственная компания также является производственной компанией HBuilderX.DCloud.io, HBuilderX этоuni-appСделано много оптимизаций, подсказок по коду, переход к определению, easycom, запуск отладки... так чтоuni-appЭффективность разработки и простота использования находятся за пределами досягаемости других фреймворков.

Измерение опыта разработки, результаты сравнения:uni-app > taro,kbone

бессерверная/облачная разработка

В настоящее время бессерверные технологии — это горячая концепция, известная как облачная технология следующего поколения, которая и является настоящим «облаком».

WeChat первым внедрил бессерверную технологию в область разработки небольших программ, а именнооблачная разработка, чтобы помочь разработчикам завершить свой бизнес в одном облаке. Впоследствии Alipay и Baidu запустили собственную облачную разработку. Согласно общедоступным данным WeChat, уже 500 000 разработчиков используют облачную разработку WeChat.

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

Возьмем в качестве примера облачную разработку WeChat.Если вы разрабатываете только мини-программы WeChat, а данные хранятся исключительно на платформе WeChat, то проблем нет, но если у вас также есть приложения или другие мини-программы, данные Мини-программы WeChat хранятся на платформе WeChat, данные других платформ хранятся на собственном сервере разработчика, и в это время происходит фрагментация данных. Предположим, что пользователь сначала использует апплет, а личные данные хранятся на платформе WeChat; после обновления до приложения с липкостью приложение не может считывать данные на платформе WeChat, а пользователь не может просматривать предыдущие исторические данные в апплете. или даже требуется перерегистрация на платформе приложения. Эта ситуация плоха для разработчиков.

Поэтому кросс-серверное решение является оптимальным решением для разработчиков.

Текущие основные платформы поддерживают облачную разработку:

  • Taro: поддерживает только апплет WeChat, см. подробности.Мини-шаблон разработки облачных программ
  • uni-app: DCloud сотрудничает с Alibaba Cloud и Tencent Cloud, чтобы предоставить платформу облачной разработки, основанную на бессерверном режиме и программировании js, и поддерживает все платформы программ App/H5/Mini.uniCloud
  • kbone: поддерживает только апплет WeChat, см. подробностиоблачная разработка

В бессерверном измеренииuni-appЗначительно опережает другие фреймворки.

Рынок плагинов

Независимо от того, может ли среда разработки быть успешной или нет, помимо высокой степени продуктивности самой среды, построение экосистемы разработчиков также имеет решающее значение.

uni-appВпервые запущен в конце 2018 г.Рынок плагинов, поддерживает интерфейсные компоненты, js sdk, шаблоны страниц, шаблоны проектов, встроенные плагины и другие типы, а также предоставляет средства оценки и платные покупки, чтобы стимулировать творческую страсть авторов колес. В настоящее время на рынке выпущено около 1500 подключаемых модулей, и многие подключаемые модули были загружены более 10 000 раз.

TaroЗапущен в мае 2019 г.рынок материалов, на данный момент на рынке выпущено 90 материалов, с точки зрения списка популярных, объем скачивания невелик, а самых скачиваемых материалов всего несколько сотен.

kboneМагазина плагинов пока нет.

Tips:

  • Время сбора данных по количеству плагинов и загрузок 2020.04.03 16:00

измерение рынка плагинов,uni-appДоминирование.

Образовательные ресурсы

Помимо официальных веб-сайтов основных фреймворков, разработчики обычно систематически учатся с помощью видеоуроков, блогов сообщества и т. д.

Обилие соответствующих учебных ресурсов также может отражать популярность фреймворка, поэтому мы собрали данные с нескольких трехсторонних сайтов.

видеоурок

Рамка Тенсент Класс Облачный класс NetEase МООК
taro 4 1 2
uni-app 16 16 1

Советы:

  • Время сбора данных видеоурока 2020.04.05 22:00

связь развития

В дополнение к вводным учебным ресурсам, общение в период разработки также очень важно.В основном мы рассматриваем сообщество и группы общения, организованные официальной организацией.

форум сообщества

uni-appизСообщество вопросов и ответов, есть много сообщений и больше депозитов; в настоящее время размещено более 20 000 связанных сообщений, сотни сообщений обновляются каждый день, а ежемесячный uv составляет один миллион.

Для пользователей, которые привыкли использовать проблемы github для сообщения о проблемах,uni-appТакже поддерживается, в настоящее время существует 1391 выпуск.

Taro начал управление ошибками продукта на основе проблем github в первые дни и накопил почти 4898 проблем; он будет запущен в мае 2019 года.сообщество разработчиков, и время запуска рынка материалов такое же.В настоящее время существует более 1300 сообщений, и каждый день обновляется около 10 сообщений.Метод расчета соответствующих данных выглядит следующим образом:

  • Всего сообщений: Лучшие выборы сообщества Таро板块, подсчитайте общее количество всех тем в каждом разделе, как показано ниже.
  • Ежедневные обновления сообщений: подсчитывает общее количество потоков с ответами или комментариями в течение 24 часов на основе времени последнего ответа в списке сообщений.

kbone добавил нового в открытое сообщество WeChatОфициальный фреймворк KboneВ специальной области из-за позднего выпуска продукта в настоящее время всего более 100 сообщений.

Если обобщить сообщения сообщества и данные о проблемах, то ситуация следующая (время сбора 2020.04.03 23:00):

группа обмена

Рамка Группа WeChat QQ группа Разработчики группы обмена (оценка)
taro 16 - 8k
uni-app 20 40+ 90k
kbone - 1 0.5k

Tips:

  • Согласно официальному сайту Таро, у Таро 16 групп WeChat.Taro 开发交流 15 群 已满Можно сделать вывод, что в каждой группе WeChat 500 человек, а количество групп общения: 500*16 = 8000 человек.
  • На официальном сайте uni-app 35 QQ-групп, 20 WeChat-групп и более десятка специальных QQ-групп, из них 30 QQ-групп охватили 2000 человек.Количество групп общения: 30*2000+5*1000 + 20*500 + 5000 = 90000 человек
  • kbone имеет группу обмена qq в файле readme github, и он показывает, что 500 человек заполнены при подаче заявки на вступление

В дополнение к биржевой группе, DCloud анонсировалаuni-appКоличество разработчиков достигло миллиона, еще не виделиtaroиkboneопубликовать такие данные.

В целом, результаты сравнения параметров коммуникации в целях развития выглядят следующим образом:uni-app > taro > kbone

Другие показатели

github

Рамка star Автор
taro 24.6k 122
uni-app 19.7k 72
kbone 2.7k 7

Со стороны сообщества открытого исходного кода,TaroОн по-прежнему был очень успешным и привлекал больше разработчиков, которые добавляли к нему код и документацию.

Индекс Байду

пройти черезindex.baidu.com, вы можете просмотреть поисковый индекс основного фреймворка, который представляет собой объем поиска пользователей сети и объем коллекции связанных статей. В настоящее времяkboneЕще не включенный в индекс Baidu, ниже приводится недавнийuni-appиtaroТаблица сравнения индексов Baidu:

Эпилог

Все оценки служат лишь основой для принятия решений, а окончательный результат по-прежнему зависит от технологического стека команды разработчиков, требований бизнеса и планов на будущее.

Однако в качестве заключения статьи мы все же вынуждены дать свой собственный совет:

  • Если вы знакомы с React и не понимаете Vue.js, рекомендуется Taro;
  • Если вы знакомы с Vue.js, рекомендуется использовать uni-app;
  • Если у вас уже есть код H5, вы просто хотите увеличить платформу апплета WeChat и не предъявляете высоких требований к производительности, вы можете рассмотреть kbone;
  • Если ваш бизнес включает в себя несколько целей, более рекомендуется использовать uni-app;
  • Если вы хотите быстро запустить свой бизнес с помощью бессерверного решения, рекомендуется использовать uni-app.

Если читатели считают, что какая-либо оценка в этой статье искажена, сообщите об этом здесь.issuse.