Розробка VUE
Зміст
- порядок розробки та підключення - нижче
- структура проекту VUE
- Документація та Playground
- Інтеграція VUE - Plugin - можливість використання VUE не в компонентах
- Design System Tailwind
Стороні бібліотеки
Правила розробки VUE
- ізольованість, бажано 0 залежностей
- тестування розробником і тестувальником
- документація та playground з параметрами (для проектів /docs/vue)
- автономний запуск під компоненти
- vue в проектах
- tag з гілки main
- відсутність debugger, console, помилок
- vendor
- mr - перевірка і контроль
- ui kit максимально протестований
- орієнтуємось на готові рішення, термінологію, component API
- статичні дані - для розробки або API документація
- приклади на статичних даних
- eslint AirBNB
- naming - props, data, element
- prefix - vst - tailwind , vst-form, vst-filter - 2 частина категорія
- розбиття на під компоненти
- tailwind
- import динамічний
eslint - Ставимо і обов'язокво виправляємо все. В налаштуваннях можна auto fix
{
"eslint.codeAction.showDocumentation": {"enable": true},
"eslint.alwaysShowStatus": true,
"git.autofetch": true,
"eslint.format.enable": true,
"editor.formatOnSave": true,
"editor.formatOnType": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"eslint.validate": [
"javascript",
"javascriptreact",
"vue"
],
"git.enableSmartCommit": true,
"javascript.updateImportsOnFileMove.enabled": "always",
"editor.wordWrap": "on",
}
Naming - Орієнтуємось на стандартизовані назви props а також на element. Термінологія, зрозумілі назви файлів та зміних
Готові рішення - Дивимось готові open source, google, chatgpt. беремо готове або орієнтуємось на component API
Мінімум залежностей - крім базових речей uikit, form, filter - інше має бути інкапсульовано в компоненті
Статичні дані - для розробки не обовязково мати API з даними. визначити структуру
документація - Обов'язково!!! Props, keyboards, slot, example, ... зміни також вносимо
Правила UI компонент
- notification - на дію API та помилку
- cursor pointer, hover - на активні елементи
- loading - при діях
- console - при event-stream
- робота без f5
- управління клавіатурою
- історія/historyAPI в компонентах - після f5 той самий state
Порядок розробки
Вихідні дані
- API документація
- Пов'язані компоненти
- ТВ
Процес
- Створюємо компонент в проекті, node
- Підключаємо через Helper _vue на сторінку або інтерфейс
- Задати структуру даних, якщо немає реальних - статичні дані
- Підібрати готові блоки tailwind - розвивати бібліотеку готових блоків
- Використовувати готові приклади та рішення, наприклад карти
- Документація та playground з параметрами
- Писати unit test
- Приклад з тестовими даними якщо треба
Вимоги до тестування
- Перевіряємо документацію - опис props
- Роботу в playground і зміну налаштувань
- Помилки в console
Місце розміщення компонент і підключення
Компоненти створюються в форматі Single File Component версія Vue2
<script>
export default {
data() {
return { greeting: 'Hello World!' }
}
}
</script>
<template>
<p class="greeting">{{ greeting }}</p>
</template>
<style>
.greeting {
color: red;
}
</style>
1. В GIT Проекті
В модулі проекту, папка vue згідно структури
{{{_vue "/vue/itree/vs-itree-map.vue" }}}
, де itree назва модуля, а сам шлях підключення - /vue/:module/:path
2. В проекті Node - ядро системи
В проекті node в папці module/:module_node/vue/:path
папка vue
. Структура проекту
{{{_vue "/vue/web/logger/vs-logger.vue"}}}
, де web
назва module_node, а шлях підключення - /vue/:module_node/:path
3. Проект VUE
В проекті VUE. Структура проекту. Містить стандартні компоненти: form, map та ін.
{{{_vue "/vue/crm/components/content/header/vs-header-wrapper.vue" }}}
, де crm
назва module_vue, а шлях підключення - /vue/:module_vue/:path
Версія VUE може бути
- зафіксована -
/vue/gis/misc/svg/polygon.svg?ver=1.0.59b
- тоді шлях буде містити версію - ні тоді буде тянути з серверу source.softpro.ua або локального PK
В разі змін версію можна створити нову і змінити у користувача
Оновлення версії та інші API
Helper VUE
/api-user/vuejs/:token.js
- використовуєтья в helper{{_vue "/vue/:module/:path"}}
. Генерується унікальнийtoken
і викликається скрипт підключення доступний по API
:::Tip "Підчас вставки генерується код підключення"
async function vs053c81a7a1782154d4b64d564cbc9e31(){
if(!window.Vue){
await head.promise(['/vue/vendor/vue.bundle.js']);
await head.promise(['/vue/core/store.js',"/vue/core/core-components.js"]);
}
if(!window.ELEMENT){
await head.promise([ "/vue/vendor/element/element.ua.js","/vue/vendor/element/element_softpro.css"]);
}
Vue.component('vs053c81a7a1782154d4b64d564cbc9e31', () => import('/vue/SITE/calc/vs-calc-new.vue'));;
const vvs053c81a7 = new Vue ({
/*mixins: [meta],*/
el: '#vs053c81a7a1782154d4b64d564cbc9e31',
store: window.store,
data:()=>{return {data1 : '-', ...{} } }
});
}; vs053c81a7a1782154d4b64d564cbc9e31();
:::
Single File Component to JS
/vue/:path
- повертає код компоненти у форматі JS: 1. з проекту 2. з node 3. з VUE Project- Приклад http://dgm.local.gki.com.ua/vue/SITE/calc/vs-calc-new.vue
Оновлення
/api-user/vue/:version
- API оновлення версії- http://admin.rivne.local.softpro.ua/api-user/vue/1.0.59b - Приклад
- http://admin.rivne.local.softpro.ua/api-user/vue/del - Вилучити версію
версія зберігається в папці проекту /vue
Створення версії
- Для створення нової версії необхідно в проекті VUE - створити новий tag
- https://git.softpro.ua/softpro/vue
Налаштування проекта VUE локлаьно
d:\softpro
- заходимо в папкуgit clone -b dev https://git.softpro.ua/softpro/vue.git
- клонуємо репозиторій vuenpm i
- встановлюємо пакети- Копіюємо файл
d:\softpro\server\config_https.json
->d:\softpro\server\config.json
127.0.0.1 source.softpro.ua
->c:\Windows\System32\drivers\etc\hosts
- прописуємо DNS VUE на locahostchrome://flags/
- FlagBlock insecure private network requests
->disabled
npm start
- запуск
При помилці CORS виконайте комнду нижче в prompt
з правами admin
# prompt as admin
REG ADD HKEY_CURRENT_USER\Software\Policies\Google\Chrome /v InsecurePrivateNetworkRequestsAllowed /t REG_DWORD /d 1 /f
Всі зміни доступні відразу hotrelaod