오르막길
[React] React에서 외부 스크립트 연결하기, 전역변수 본문
리액트 프로젝트를 진행하던 중 외부 라이브러리 스크립트를 가져와 사용해야 하는 일이 생겼다.
여기저기 구글링 하며 알아본 정보를 정리하고자 한다.
1. effect - hook 이용하기
https://usehooks.com/useScript/
useScript
usehooks.com
직접 설명하는 것보다 훨씬 잘 정리된 글이다. 원래는 이 방법으로 구현하고자 했고, 코드도 작성해 두었지만 다른 라이브러리도 있지 않을까 싶어 더 찾아보었다.
2. Hemlet 사용하기
https://www.npmjs.com/package/helmet
helmet
help secure Express/Connect apps with various HTTP headers. Latest version: 6.0.1, last published: 2 months ago. Start using helmet in your project by running `npm i helmet`. There are 3551 other projects in the npm registry using helmet.
www.npmjs.com
왜 이름이 헬멧인가 했더니 이 라이브러리로 쉽게 헤더 설정을 해줄 수 있었다. 그러나 라이브러리를 가져오기만 하고 라이브러리를 이용해 변수를 가져온다거나는 하지 못한다.
helmet({
referrerPolicy: { policy: "no-referrer" },
})
이런식으로 헤더로 설정할 내용을 helmet으로 감싸 return 안에 작성해주면 된다.
3. jsScript 사용하기
https://www.npmjs.com/package/scriptjs
scriptjs
Asyncronous JavaScript loader and dependency manager. Latest version: 2.5.9, last published: 4 years ago. Start using scriptjs in your project by running `npm i scriptjs`. There are 370 other projects in the npm registry using scriptjs.
www.npmjs.com
jquery처럼 스크립트를 불러올 수 있는 방법이다.
$script('jquery.js', function () {
$script('my-jquery-plugin.js', function () {
$script('my-app-that-uses-plugin.js')
})
})
이런식으로 종속성 있는 구조도 가능하며
$script(['dom', 'event'], function () {
// use dom & event
})
한꺼번에 불러와 함수를 다루는 방법도 가능하다. 나는 이 방법으로 구현해 두었다.
+ 이런 방식으로 스크립트를 불러와 외부 스크립트 내 변수를 다루다 보면 분명 Uncaught TypeError: Cannot read properties of undefined 같은 에러가 나올 텐데.. 이는 전역변수로 해결해주면 된다.
/*global 변수 이름들 */
/*eslint no-undef: "error"*/
'문제 해결하기 > FE' 카테고리의 다른 글
[React] 리액트 jsx에서 외부 소스 이미지 엑박 오류 해결법 (0) | 2023.02.20 |
---|---|
[React] 자식이 부모에게 prop을 주는 방법? (0) | 2023.02.20 |
[CSS] SCSS, MUI, styled-component, emotion (0) | 2023.02.06 |
[React+OpenVidu]완전 초보자가 OpenVidu를 React로 만져본 기록 (0) | 2023.01.28 |