inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]

모던 웹을 위한 상세한 CSS background 이해2

궁금한점

283

jhj

작성한 질문수 6

0

예를 들면 네이버에 접속을 하면 "네이버 증권", "네이버 웹툰"등등 여러 카테고리가 나오지 않습니까 그런데 이 모든 페이지를 html로 구현하려니 모든 버튼에 a태그와 그에 맞는 html웹페이지를 연동시켜야 하더라고요... 혹시 이렇게 않고 java script를 이용하여 구현하는 방법이 따로 있을까요?

HTML/CSS javascript es6

답변 1

0

잔재미코딩 DaveLee

안녕하세요 답변 도우미입니다.

물론 있습니다. 웹 페이지의 여러 부분을 동적으로 로딩하기 위해 JavaScript를 활용할 수 있습니다. 이렇게 하면 각 버튼을 누를 때마다 전체 페이지를 다시 로드할 필요가 없어져서 사용자 경험이 좋아집니다. 관련해서도 여러 가지 기술이 있을 수 있어서 참고로 몇가지 예시를 공유드립니다.

### 방법 1: AJAX (Asynchronous JavaScript and XML)

- 서버에서 필요한 데이터만 가져와서 해당 부분만 업데이트합니다.

```javascript

document.getElementById("myButton").addEventListener("click", function() {

fetch('/some-api-endpoint')

.then(response => response.json())

.then(data => {

// Update your HTML here

document.getElementById("someElement").innerHTML = data.someValue;

});

});

```

### 방법 2: SPA (Single Page Application)

- React, Angular, Vue 같은 프레임워크를 사용하여 하나의 페이지 내에서 동적으로 컨텐츠를 바꿉니다.

예를 들어 React를 사용한다면:

```jsx

function App() {

const [page, setPage] = useState('home');

return (

<div>

<button onClick={() => setPage('home')}>Home</button>

<button onClick={() => setPage('stock')}>네이버 증권</button>

<button onClick={() => setPage('webtoon')}>네이버 웹툰</button>

{page === 'home' && <HomePage />}

{page === 'stock' && <StockPage />}

{page === 'webtoon' && <WebtoonPage />}

</div>

);

}

```

이렇게 하면 각 버튼을 클릭할 때마다 해당하는 컴포넌트만 로딩되므로, 페이지 전체를 다시 로드할 필요가 없습니다.

### 방법 3: InnerHTML 또는 DOM Manipulation

- 순수 JavaScript만을 사용하여 원하는 부분의 HTML을 바꿉니다.

```javascript

document.getElementById("myButton").addEventListener("click", function() {

// Update your HTML here

document.getElementById("someElement").innerHTML = '<h1>New Content</h1>';

});

```

이렇게 하면 여러 페이지를 만들고 링크를 걸지 않아도 한 페이지 내에서 여러 카테고리를 표시할 수 있습니다.

감사합니다.

교육기간을 연장할 수 있는지 문의드립니다.

0

38

1

메일 확인부탁드립니다

0

58

1

CodeSandbox Vanilla 질문있습니다

0

60

1

part1을 수강하지 않아도 지장이 없다 하셨는데

0

107

1

강의에 관해 문의 드립니다.

0

91

1

메일확인 부탁드립니다.

0

91

1

14강 - 72,73번 강의 영상이 동일한거 같습니다.

0

106

1

Symbol 관련 테스트 코드 실행 결과 문의

0

141

1

호환성 관련 태그

0

120

1

강의화면은 index.js인데 왜 샌드박스코드에서는 index.mjs인지 궁금해요

0

136

1

강의화면은 index.js인데 왜 샌드박스코드에서는 index.mjs인지 궁금해요

0

146

1

div id="highlighter"가 강의화면에는 없는데 왜 샌드박스파일에는 있는지 궁금해요

0

86

1

강의화면에 height 가 vh가 아닌 vw라고 나와있는데 뭐가맞는거죠

0

117

1

메일 확인 부탁드립니다.

0

146

1

메일 확인 부탁드립니다

0

150

1

특별한 형태의 javascript배열에서

0

135

1

메일 확인부탁드립니다!

0

162

1

codesandbox 업데이트..

0

144

1

pdf 파일에 있는 링크주소로 들어가지지가 않습니다.

0

266

2

강의에서 알려주신 Properties for the flex container 복습 사이트, 검색 발견되어서 공유드립니다~

0

152

1

removeEventlistener 를 왜 해주어야 하는지

0

227

1

100vw 관련 질문

0

335

2

VS CODE html:5 <tab>기능이 안됩니다

0

350

1

[모던웹페이지 만들기9](1:40)class-desc 카드부분관련

0

248

2