Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar
translation

Ez egy AI által fordított bejegyzés.

뚠뚠멍의 생각들

React - a "kakao is not defined" hiba elhárítása

  • Írás nyelve: Koreai
  • Referencia ország: Minden ország country-flag

Válasszon nyelvet

  • Magyar
  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी

A durumis AI által összefoglalt szöveg

  • A React 18-ban a create-react-app környezetben a Kakao Térkép API integrálása során a térkép nem jelenik meg, ami a React komponensek globális objektumokhoz való közvetlen hozzáférésének hiányából adódik.
  • A React a kapszulázás, a teljesítmény és az állapotkezelés érdekében nem engedi a globális objektumokhoz való közvetlen hozzáférést, ehelyett a Reduxhoz hasonló központi állapotkezelő könyvtárakat használ a data áramlásának szabályozására.
  • A Vue-val ellentétben a React nagyobb szabadságot kínál a könyvtári struktúra és a hookok tekintetében, de a kezdő fejlesztők számára ez kihívást jelenthet. A toy projektek révén lehet a legjobban megismerkedni a framework-kel.
  • Probléma
  • Megoldás
  • Ok
  • Gondolatok


Probléma

A React 18, create-react-app környezetben a Kakao Térkép API integrálása során a térkép nem jelenik meg!

A head címke belsejében helyeztem el a szkript címkét, így azt hittem, hogy a böngésző renderelése előtt betöltődik.

** Megírtam az html-t, de nem látszik !!**

~nagyjából a index.html head címkéjébe beillesztettem a Kakao térkép betöltéséhez szükséges kódot~

<!-- index.html -->
 
<head>
    <script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=%REACT_APP_API_KEY%&libraries=services,clusterer,drawing" id="map-lib"></script>
useEffect(() => {
    // map betöltése    


A konzolban azonban csak kakao is not defined jelenik meg és semmi nem renderelődik.


Megoldás

Alap: A React komponensek nem férnek hozzá közvetlenül a globális objektumokhoz.


Megoldás 1-1

A komponensfüggvényen kívül deklaráljuk a kakao attribútumot a globális objektumból.

const { kakao } = window;

function Map() {
    //...


Megoldás 1-2

A térkép rendereléséhez szükséges függvényeket elkülönítjük egy egyéni horogként.

//hooks/useKakaoMap.js

const { kakao } = window;

function useKakaoMap() {
    const initializeMap = useCallback(() => {
        const container = document.getElementById('map');
        const options = {
        center: new kakao.maps.LatLng(33.450701, 126.570667),
            level: 3
        };
        const newMap = new kakao.maps.Map(container, options);
        setMap(newMap);
    }, []);

    //...    
    
    return {
        initializeMap
    }
}

export default useKakaoMap;

//Map.js

function Map() {
    
    const {
        initializeMap,
    } = useKakaoMap();
    
    useEffect(() => {
        initializeMap();
    }, [initializeMap]);
    
    
    return(
     <div id="map"></div>
    
    )
    


A húzási események, a kattintási események, a markerkezelés stb., általában a térképen szükséges funkciók

jobb, ha nem a komponensen belül valósítjuk meg, hanem

egy egyéni horogként elkülönítjük, ami javítja a felhasználhatóságot és az olvashatóságot.


Ok

Miért nem fér hozzá a React a globális objektumokhoz - meg kell értenünk a React koncepcióját.


1) Kapszulázás és modularitás

- A komponenseknek függetlennek és újrafelhasználhatónak kell lenniük. Ha túl sok komponens támaszkodik a globális objektumokra, elveszítjük a függetlenségünket, és a rendszer sokkal bonyolultabb lesz.


2) Teljesítmény és könnyű karbantartás

- A React újrarenderelődik, ha az állapot változik, a globális objektumok nem alkalmasak az állapotváltozások nyomon követésére.


3) Az állapotkezelés központosított

- Ha mégis meg kell osztanunk több változót, akkor a Redux-hoz hasonló központosított állapotkezelő könyvtárakat használunk.

Központ -> komponensek, az adatok áramlását irányítjuk, így elkerüljük a hibákat és megkönnyítjük a karbantartást.


* Kiszolgálóoldali renderelés

Manapság a SEO (keresőoptimalizálás) érdekében gyakran használják a kiszolgálóoldali renderelést, de a window objektum nem érhető el a kiszolgálóoldalon !!


Gondolatok

Ez egy első React projektem során felmerült hiba volt.

Több mint 2 éve dolgozom Vue-val, de a React projekt elindításakor

nagyon meglepődtem, hogy nem tudtam megjeleníteni a Kakao térképet...!!!


A Vue-hoz képest a mappastruktúra és a horgok kicsit szabadabbak, ami miatt inkább nehezebbnek tűnik.

Sokáig gondolkoztam azon, hogy mi a hatékony módja a megírásnak.

Tovább kell gyakorolnom a játékszerű projekteket, szó szerint.


* Ez az első blogom, a durumis nagyon egyedi és szórakoztató.

Készít 3 pontos összefoglalót is, ami a koreaiaknak tetszik ㅋㅋ

Nem lehetne külföldi fejlesztőkkel is találkozni?

A kódszerkesztőnek egy kis javításra lenne szüksége.


Szabadon lehet véleményt cserélni, bírálatokat fogadok!

Jó napot!




뚠뚠멍
뚠뚠멍의 생각들
뚠뚠멍의 생각들
뚠뚠멍
Alapvető CSS szabályok (Normál áramlás, BFC, IFC) Ez a bejegyzés a CSS elrendezés alapfogalmait mutatja be, mint például a blokk elemek, a soros elemek, a margók, az igazítás, valamint a BFC (Blokk Formázási Kontextus) és az IFC (Soros Formázási Kontextus) fogalmát. A CSS elemek normál áramlásának, a BFC

2024. szeptember 7.

A koreai befektetési értékpapír-tranzakciók API-jával kapcsolatos fejlesztési hibák rögzítése Ez a blogbejegyzés a koreai befektetési értékpapír-tranzakciók API-ját használó fejlesztőknek szól, akik automatikus kereskedési programokat szeretnének létrehozni. Bemutatja a fejlesztési folyamatban felmerülő nehézségeket, például a számlák megnyitását,
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
Ez a blogbejegyzés a koreai befektetési értékpapír-tranzakciók API-ját használó fejlesztőknek szól, akik automatikus kereskedési programokat szeretnének létrehozni. Bemutatja a fejlesztési folyamatban felmerülő nehézségeket, például a számlák megnyitását,
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마

2024. április 23.

[React Hook] useState A cikk részletesen ismerteti a React useState horgát, beleértve annak okát, hogy a komponens újrarenderelésekor miért kell az egész komponens újrarenderelésére kerülni, a értékek megőrzésének módját és a belső megvalósítási szerkezetet. A ReactFiberHooks.
Sunrabbit
Sunrabbit
Sunrabbit
Sunrabbit

2024. március 14.

A koreai befektetési értékpapírok API-jának fejlesztése során felmerült nehézségek Ez a blogbejegyzés részletesen bemutatja a koreai befektetési értékpapírok API-jának fejlesztése során felmerült nehézségeket és a megoldásokat. Szó esik a számlák nyitásáról, az ISA számlák átruházásáról, a szimulációs kereskedés támogatásának hiányáról,
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
Ez a blogbejegyzés részletesen bemutatja a koreai befektetési értékpapírok API-jának fejlesztése során felmerült nehézségeket és a megoldásokat. Szó esik a számlák nyitásáról, az ISA számlák átruházásáról, a szimulációs kereskedés támogatásának hiányáról,
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마

2024. április 23.

Egy idegen alkalmazás fejlesztőjének első története Egy fejlesztő története, aki a durumis-t választotta globális blogjának indításához. 38 nyelven támogatott és automatikus YouTube-fordító eszközöket használva a nemzetközi randevúalkalmazás népszerűsítését célozza meg. Ő a nemzetközi párok YouTube-csatorn
Alien Story
Alien Story
Egy fejlesztő története, aki a durumis-t választotta globális blogjának indításához. 38 nyelven támogatott és automatikus YouTube-fordító eszközöket használva a nemzetközi randevúalkalmazás népszerűsítését célozza meg. Ő a nemzetközi párok YouTube-csatorn
Alien Story
Alien Story

2024. április 21.

Flitter 1.0.0 kiadás: svg könyvtár a D3 helyett A Flitter egy olyan adatvizualizációs könyvtár, amely segít a webfejlesztőknek könnyen és gyorsan megvalósítani a diagramokat és ábrákat. A deklaratív kódszerkesztés és a fejlett elrendezési számítási funkciók leegyszerűsítik a bonyolult adatvizualizációs
Meursyphus
Meursyphus
A Flitter egy olyan adatvizualizációs könyvtár, amely segít a webfejlesztőknek könnyen és gyorsan megvalósítani a diagramokat és ábrákat. A deklaratív kódszerkesztés és a fejlett elrendezési számítási funkciók leegyszerűsítik a bonyolult adatvizualizációs
Meursyphus
Meursyphus

2024. május 1.

[Nem szakmai, fejlesztőként túlélés] 17. Újonc fejlesztő portfóliója, meddig? Az újonc fejlesztő portfóliójában a fejlesztési képességekre kell összpontosítani. A Infra implementálása helyett hatékonyabb a CRUD alapfunkciók befejezése és a külső API-k integrációs tapasztalatainak megszerzése. Használhatók a Naver bejelentkezés, a N
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

2024. április 3.