1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/WeBank-wxa

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 18 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 08.03.2025 14:10 a7dd083

Прогрессивный фреймворк для разработки мини-приложений

Статус Travis node (scoped with tag, custom registry) Лицензия

GitHub Actions Статус Travis

wxa.js

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

Быстрый вход в проект, нулевое конфигурирование, безболезненная миграция.

Преимущества фреймворка

  • 🖖 Быстрый вход в проект Без дополнительных барьеров обучения, можно полностью использовать нативный синтаксис мини-приложений для разработки.- :surfer: Нулевое конфигурирование Для стандартного проекта нет необходимости в каких-либо настройках для запуска.

  • :light_rail: Низкая стоимость Очень низкие затраты на миграцию, нативные мини-приложения могут сразу работать в @wxa/cli2. Поддерживает смешанное использование нативных и WXA компонентов, что помогает старым проектам постепенно переходить.

  • :rocket: Алгоритмы пакетизации зависимостей Самописные алгоритмы пакетизации зависимостей, помогающие разработчикам эффективно использовать пространство пакетов.

  • :curly_loop: Анализ зависимости Автоматический анализ проектной зависимости, позволяющий избежать ручного копирования сторонних зависимостей в проект.

  • 🤖 Динамическая загрузка любых сторонних инструментов, компонентов, моментальная установка и использование, идеально совместима с WeUI, Vant-WeApp и другими библиотеками компонентов.

  • :alien: Множественные экземпляры одновременная компиляция нескольких проектов сторонних разработчиков или небольших приложений для других платформ, таких как мини-приложения DouYin.

Более подробная информация доступна в документации.

Установка и использование

Установите глобально с помощью yarn или npm.

npm i -g @wxa/cli2
```**Быстрое создание нового проекта**

```bash
wxa2 create

Запуск среды разработки

wxa2 build --watch

Примеры разработки

app.wxa

<script>
import { App } from '@wxa/core';

@App
export default class Main {
    globalData = {
        userInfo: 'Genuifx',
    }
}
</script>

<config>
{
    "pages": [
        "pages/index"
    ]
}
</config>

<style lang="scss">
page {
    width: 100%;
    height: 100%;
}
</style>

pages/index.wxa

<script>
import { Page, Mixins, Debounce } from '@wxa/core';
import fooMixin from '../mixins/foo.js';

// Определение страницы и добавление миксинов
@Page
@Mixins(fooMixin)
export default class Index {
    data = {
        formA: {
            org: 'fintech',
            name: 'wxa'
        }
    }

    async onLoad() {
        console.log('Hello World');
    }

    // Создание функции debounce
    @Debounce(300)
    submitA(e) {
        console.log('submit success!');
    }
}
</script>

<config>
{
    "navigationBarTitleText": "Hello Wxa"
}
</config>

<template>
    <view class="page">
        Hi, <input type="text" value="{{formA.name}}" />
        <button bindtap="submitA">Отправить</button>
    </view>
</template>

<style lang="scss">
.page {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}
</style>

По умолчанию экспортированные методы будут автоматически вызываться соответствующими методами Page, Component, App мини-приложения для регистрации.

Более подробная информация доступна в документации.

Быстрая предварительная проверка мини-приложения

wxa2 cli --action preview

Технические особенности

WXA — это фреймворк AOP, основанный на использовании декораторов (перехват выполнения) и предварительной компиляции для реализации функциональности фреймворка.С помощью декораторов реализовано:

  • :white_check_mark: Fetch автоматическая защита от повторной отправки запросов и управление очередью запросов.
  • :white_check_mark: Router простой API и возможность предварительной загрузки.
  • :white_check_mark: Eventbus простое решение для взаимодействия между страницами и компонентами.
  • :white_check_mark: Mixins объединение логики между страницами и компонентами.
  • :white_check_mark: Diff увеличенное использование данных.
  • :white_check_mark: Storage долговременное кэширование данных в небольшом приложении.
  • :white_check_mark: SessionStorage кэширование данных внутри периода работы приложения.
  • :white_check_mark: Lock предотвращение повторного выполнения функций, эффективное средство защиты от повторений на клиентской стороне.
  • :white_check_mark: Debounce предотвращение дребезга.

Примечание: В некоторых случаях было использовано более общее понятие вместо специфического термина, чтобы обеспечить правильность перевода в контексте IT-документации. Например, "prevent duplicate execution" переведено как "предотвращение повторного выполнения", а не "дебунчинг".

Просмотреть подробную информацию о Классовых декораторахС точки зрения предварительной компиляции, был реализован анализ зависимостей проекта мини-приложений, используя дерево зависимостей для управления всем проектом. На этой основе были адаптированы npm, однострочное развитие, облачное развитие и третье развитие. В плане синтаксиса поддерживаются последние ES*-синтаксис (включая Async/Await), Sass/Scss, Stylus. При необходимости можно адаптировать больше синтаксисов.## Экосистема WXA|Пакет|Описание|Версия |-----|--------|----- |@wxa/core|Основной пакет WXA runtime|npm| |@wxa/cli2|Командная строка и компиляция WXA|npm| |@wxa/validate|Валидация форм с поддержкой пользовательских правил проверки и сообщений|npm| |@wxa/watch|Watch & computed|npm| |@wxa/log|Отправка логов в реальном времени для мини-приложений|npm| |@wxa/mobx|Интеграция MobX в WXA|npm| |@wxa/redux|Интеграция Redux в WXA|npm| |@wxa/plugin-uglifyjs|Сжатие и улучшение качества JavaScript кода|npm| |@wxa/plugin-replace|Замена произвольных символов, используется для замены тестовых параметров при сборке|npm| |@wxa/plugin-copy|Копирование указанных статических ресурсов|npm| |@wxa/plugin-bind-hijack|Плагин для перехвата событий bind в мини-приложении|npm| |@wxa/plugin-minify-wxml|Сжатие WXML|npm||@wxa/plugin-postcss|Пользовательский плагин PostCSS| |@wxa/plugin-dependencies-analysis|Визуализация зависимостей модулей после сборки проекта, размеров и других данных, что помогает анализировать возможности оптимизации проекта.| |wxa-vscode|Плагин для Visual Studio Code|После установки вы сразу получите: автодополнение кода, форматирование; синтаксическое выделение цветами, проверку (включая файлы wxml и wxs); подсказки по фрагментам кода; поддержку однофайловых компонентов|

Клубный чат в WeChat

QR-код сообщества может быть обновлен по запросу. Для связи используйте следующие адреса электронной почты:

junbiaoli@webank.com
iveswen@webank.com

Для добавления в проект обратитесь к ответственному за проект: wechat: szyshangzhiyuan (при добавлении в друзья укажите: wxa)

Вкладчики ✨

Большое спасибо этим замечательным людям (ключ эмодзи):

---<! -- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> <! -- prettier-ignore-start --> <! -- markdownlint-disable -->


WZT

💻 🚧

BiaoDuit

💻 🚧

ShangZY

💻 🚧

Хун Мин

💻 🚧

Lucus Zhu

💻 🚧

hughliu

💻 🚧

FlyDaisy

💻 🚧

Zachary Kwan

💻

Alan Zhang

💻

hanzooo

💻
```

Удалены лишние пробелы после https:// в ссылках. Устранены проблемы с форматированием и разметкой.

Этот проект следует спецификации all-contributors. Любые вклады приветствуются!

ЛИЦЕНЗИЯ

MIT

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/WeBank-wxa.git
git@api.gitlife.ru:oschina-mirror/WeBank-wxa.git
oschina-mirror
WeBank-wxa
WeBank-wxa
master