Смањите шаблонски код и учините своје Вуе апликације лакшим за одржавање користећи ову згодну алтернативу.
Вуе нуди неколико начина управљања протоком података и комуникацијом између компоненти. Уобичајени изазов као Вуе програмера је пробушење, где преносите податке кроз различите слојеве компоненти, што доводи до сложене базе кода која се мање одржава.
Вуе нуди механизам за обезбеђивање/убризгавање, чисто решење за бушење подупирача. Обезбеђивање/убацивање помаже у управљању комуникацијом података између родитеља и дубоко угнежђених дечјих компоненти.
Разумевање проблема бушења подупирача
Пре него што уђете у решење за обезбеђивање/убризгавање, важно је разумети проблем. Бушење подупирача се дешава када је потребно да пренесете податке са надређене компоненте највишег нивоа на дубоко угнежђену подређену компоненту.
Међукомпоненте у овој хијерархији треба да примају и прослеђују податке, чак и ако их сами не користе. Да бисте пренели податке са родитељске компоненте на подређену компоненту, мораћете да то урадите проследите ове податке као пропс вашим Вуе компонентама.
Размотрите следећу хијерархију компоненти као пример:
- Апликација
- ПарентЦомпонент
- ЦхилдЦомпонент
- ГрандЦхилдЦомпонент
- ЦхилдЦомпонент
- ПарентЦомпонент
Претпоставимо да подаци из Апликација компонента треба да достигне ГрандЦхилдЦомпонент. У том случају, мораћете да га прођете кроз две средње компоненте користећи пропс, чак и ако тим компонентама не требају сами подаци да би исправно функционисали. Ово може довести до надуваног кода који је теже отклонити.
Шта је обезбеђивање/убризгавање?
Вуе решава овај проблем са обезбедити/убризгати карактеристика, која омогућава родитељској компоненти да обезбеди податке или функције својим компонентама потомцима, без обзира колико су дубоко угнежђене. Ово решење поједностављује дељење података и побољшава организацију кода.
Компонента провајдера
Компонента добављача намерава да дели податке или методе са својим потомцима. Користи се обезбедити могућност да ове податке учини доступним својој деци. Ево примера компоненте добављача:
<template>
<div>
<ParentComponent/>
div>
template><scriptsetup>
import { provide } from 'vue';
import ParentComponent from './components/ParentComponent.vue';const greeting = 'Hello from Provider';
provide('greeting', greeting);
script>
Овај блок кода приказује компоненту добављача, Апликација, који обезбеђује а Поздрав променљива за све њене компоненте потомке. Да бисте обезбедили променљиву, потребно је да подесите кључ. Подешавање кључа на исто име као променљива помаже у одржавању вашег кода.
Компоненте потомака
Компоненте потомке су компоненте унутар угнежђене структуре. Они могу да убаце и користе обезбеђене податке у инстанци своје компоненте. Ево како се то ради:
<scriptsetup>
import { inject } from 'vue';
const injectedData = inject('greeting');
script>
Компонента потомка убацује дате податке и може им приступити у оквиру свог шаблона као локално дефинисане променљиве.
Сада размотрите слику испод:
На овој слици можете видети хијерархију од четири компоненте, почевши од основне компоненте која служи као почетна тачка. Остале компоненте се гнезде унутар хијерархије, завршавајући се на ГрандЦхилд саставни део.
Компонента ГрандЦхилд прима податке које пружа компонента апликације. Са овим механизмом на месту, можете избећи пролазак података кроз Родитељ и дете компоненте, јер тим компонентама нису потребни подаци да би исправно функционисали.
Пружање података на (глобалном) нивоу апликације
Можете да обезбедите податке на нивоу апликације са Вуе-овим пружањем/убацивањем. Ово је уобичајен случај коришћења за дељење података и конфигурације између различитих компоненти унутар ваше Вуе апликације.
Ево примера како можете да пружите податке на нивоу апликације:
// main.js
import { createApp } from'vue'
import App from'./App.vue'const globalConfig = {
apiUrl: 'https://example.com/api',
authKey: 'my-secret-key',
// Other configuration settings...
};app.provide('globalConfig', globalConfig);
createApp(App).mount('#app')
Претпоставимо да имате апликацију која захтева глобални конфигурациони објекат који садржи Програмски интерфејс апликације (АПИ) крајње тачке, информације о аутентификацији корисника и друга подешавања.
То можете постићи пружањем конфигурационих података на компоненти највишег нивоа, обично у вашој маин.јс датотеку, омогућавајући другим компонентама да је убризгају и користе:
<template>
<div>
<h1>API Settingsh1>
<p>API URL: {{ globalConfig.apiUrl }}p>
<p>Authentication Key: {{ globalConfig.authKey }}p>
div>
template><scriptsetup>
import { inject } from 'vue';
const globalConfig = inject('globalConfig');
script>
Горња компонента користи убризгати функцију за приступ глобалЦонфиг објекат, који апликација пружа на глобалном нивоу. Можете приступити свим својствима или подешавањима из глобалЦонфиг интерполацијом или повезивањем ових својстава са различите технике везивања података у Вуе-у унутар компоненте.
Предности и употреба Провиде анд Ињецт
Ево неких предности и важних употреба функције пружања/убацивања приликом креирања веб апликација у Вуе-у.
Чистији и оптимизовани код за више перформанси
Користећи обезбедити/убризгати, уклањате потребу за међукомпонентама да прослеђују податке које не користе. Ово резултира чистијим кодом који се може одржавати смањењем непотребних декларација пропа.
Такође, Вуе-ов систем реактивности обезбеђује да се компоненте поново приказују само када се њихове зависности промене. Обезбеђивање/убацивање омогућава да се подаци ефикасно деле, што може довести до оптимизације перформанси смањењем непотребних поновних рендеровања.
Побољшана инкапсулација компоненти
Обезбеђивање/убризгавање промовише бољу инкапсулацију компоненти. Подређене компоненте треба само да брину о подацима које експлицитно користе, смањујући њихово ослањање на специфичну структуру података родитељских компоненти.
Размислите о компоненти бирача датума која се ослања на локализована подешавања формата датума. Уместо да проследите ова подешавања као пропс, можете их обезбедити у оквиру надређене компоненте и убацити их само у компоненту бирача датума. Ово доводи до јаснијег раздвајања брига.
Убризгавање зависност
Обезбеђивање/убацивање може послужити као једноставан облик убризгавања зависности, чинећи глобалне услуге и подешавања попут АПИ клијенти, крајње тачке, корисничка подешавања или складишта података – лако доступни за сваку компоненту којој су потребни. Ово обезбеђује доследне конфигурације у вашој апликацији.
Основне тачке које треба узети у обзир када користите Провиде анд Ињецт
Док обезбедити/убризгати механизам нуди многе предности, требало би да га пажљиво користите да бисте избегли нежељене нежељене ефекте.
- Користите обезбедити/убризгати за дељење важних података или функција потребних у хијерархији компоненти као што су конфигурација или АПИ кључеви. Прекомерна употреба може учинити ваше односе компоненти превише сложеним.
- Документујте шта пружа компонента добављача и које компоненте потомке треба да убаце. Ово помаже у разумевању и одржавању ваших компоненти, посебно када радите у тимовима.
- Будите опрезни у креирању петљи зависности, где подређена компонента обезбеђује нешто што родитељска компонента убацује. То ће довести до грешака и неочекиваног понашања.
Да ли је обезбеђивање/убацивање најбоља опција за управљање државом у Вуе-у?
Обезбеђивање/убацивање је још једна корисна функција у Вуе-у за управљање протоком података и стањем кроз компоненте. Обезбеђивање/убризгавање има своје недостатке. Обезбеђивање/убацивање може довести до изазова у отклањању грешака, тестирању и одржавању апликација великих размера.
Коришћење Пиниа-е, Вуе-овог званичног оквира за управљање стањем, било би најбоље за руковање сложеним стањима у вашој Вуе апликацији. Пиниа пружа централизовану продавницу и приступ безбедан типовима за управљање стањем, чинећи развој Вуе апликација приступачнијим.