단순하고 컴팩트한 JS 어플리케이션을 구축하는 방법
25425 단어 sveltewebdevtutorialjavascript
JavaScript의 세계에서 매일 새로운 프레임워크가 나타나는데 이런 진보의 배후 생각은 거의 똑같지만 매우 현저한 개선이 있다.현대의 구성 요소 기반 프레임워크는 ReactJS, VueJS, EmberJS, Angular 및 그 이상을 포함한다.
본고에서 우리는 이러한 새로운 틀 중 하나인 SvelteJS을 연구할 것이다.이것은 HTML, CSS, 자바스크립트의 기본 지식을 바탕으로 웹 플랫폼을 구축하는 데 독특하고 이해하기 쉬운 방법을 제공한다.
Svelte는 중간 지대로 기초 지식을 배우기 시작하는 방식이며 구성 요소 구동 개발, scoped vs. cascading CSS, templating, declarative functions 등 현대 개념에 적응한다.
선결 조건
본 논문은 더 자세히 논의하기 전에 다음과 같이 가정합니다.
Node.js ≥v6 시스템에 설치
npm 시스템에 설치
슬림한 프레임과 구성 요소 기반 프레임 사이의 차이
인코딩에 익숙하지 않은 사람들에게 Svelte는 DOM 형식의 조작을 허용하기 때문에 열 재부팅과 구성 요소의 세계에서 방향을 잃는 것을 피하기 쉽다.Svelte는 생성된 모든 파일을 단일 파일(bundle.js)로 컴파일합니다.Svelte는 하나의 프레임워크입니다. 이것은 가상 DOM에 적용되지 않고 코드를 작성하여 응용 프로그램의 상태가 변화할 때 외과 수술을 통해 DOM을 업데이트하는 것을 의미합니다.
Svelte를 사용하여 서점 애플리케이션 구축
입문
날씬하게 하고 프로젝트를 실행할 수 있는 몇 가지 방법이 있다.here여 가지 입문 방법에 대한 더 많은 정보를 읽을 수 있습니다.본고에서 우리는 degit을 사용할 것이다. 이것은 소프트웨어 브래킷 도구이다.시작하려면 다음 명령을 실행합니다.
npx degit sveltejs/template Book-app-svelte
npm run dev
을 실행하여 응용 프로그램을 실행합니다.설정 후,
main.js
에서 "hello world"가 app.svelte
에 렌더링되는 것을 보아야 합니다. 이것은 날씬한 구성 요소는 .svelte
으로 확장해서 저장하는 것을 주의하는 좋은 시간이 될 것입니다.import App from './App.svelte';
const app = new App({
target: document.body,
props: {
name: 'world'
}
});
export default app;
위의 코드는 간단한 설정을 보여 줍니다. 프로그램 구성 요소는 이름 속성을 받아들이고 HTML 파일의 위치를 목표로 합니다.app.svelte
에서는 다음과 같은 VueJS 형식을 볼 수 있습니다.<script>
export let name;
</script>
<style>
h1 {
color: purple;
}
</style>
<h1>Hello {name}!</h1>
이것이 바로 main.js
이 이름 변수를 내보내서 처리하는 곳으로 외부에서 조작할 수 있도록 하는 것이다.동적 책 구성 요소 만들기
구성 요소를 만들 때 주의해야 할 사항은 다음과 같습니다.
h1
은 다른 구성 요소 이 절에서 우리는 Svelte를 사용하여 동적 이벤트를 만드는 방법을 연구하고
book.svelte
구성 요소를 app.svelte
과 패스 도구와 연결시킬 것이다.첫 번째 단계는 book 구성 요소를 설정하고 변수를 내보내는 것입니다. 이 변수는
app.svelte
의 부모 표시 설정에서 사용할 수 있습니다.<script>
export let bookTitle;
export let bookPages;
export let bookDescription;
</script>
<style>
div{
margin: 1rem;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.26)
}
h1{
font-size: 1.25rem;
margin: 0.25rem 0;
}
h2{
font-size: 1rem;
margin: 0.25rem 0;
color: aqua;
}
p{
margin: 0.25rem 0;
}
button{
font : larger;
padding: 0.15rem 0.5rem;
background-color: #1b1a1a;
border: 1px solid aliceblue ;
cursor: pointer;
color: white;
}
</style>
<div>
<h1> {bookTitle} </h1>
<h2> {bookPages}</h2>
<p> {bookDescription}</p>
<button> Add </button>
</div>
위의 코드 블록에서 변수가 div
에 동적으로 전달되고 있는 태그를 볼 수 있습니다.그것들의 값은 app.svelte
에서 왔으며, 우리는 아래에서 볼 수 있으며, 대부분의 동적 조작이 발생하는 위치를 볼 수 있다.app.svelte
에서 우리는 책 구성 요소를 가져왔습니다. 이것이 바로 우리가 대량의 동적 조작을 할 곳입니다.<script>
import Book from './book.svelte'
let title = '';
let pages = 0;
let description = '';
function setTitle(event){
title = event.target.value;
}
</script>
<style>
h1 {
color: purple;
}
section{
margin: auto;
width :30rem;
}
label,input,textarea{width: 100%}
</style>
<section>
<div>
<label for="title">Title</label>
<input type="text" id="title" value={title} on:input={setTitle}/>
</div>
<div>
<label for="pages"> pages</label>
<input type="number" id="price" value={pages} bind:value={pages}/>
</div>
<div>
<label for="description">Description</label>
<textarea rows="3" id="description" bind:value ={description}/>
</div>
</section>
<Book bookTitle={title} bookPages={pages} bookDescription={description}/>
위의 코드 예시에서 볼 수 있듯이 스크립트 태그에서 변수를 비어 있는''로 설정합니다.이것은 자동으로 업데이트된 값입니다. setTitle
의 함수를 알 수 있습니다. 이 함수는 제목을 설정하는 데 사용되며, on:
에서 대상을 호출하는 것을 목표로 합니다.괄호가 없는 함수를 호출하는 것은 바로 실행하기를 원하지 않기 때문입니다.반대로, Svelte가 키를 눌렀을 때마다 이 함수를 호출할 수 있도록 인용을 설정하고 있습니다.
우리는
on:
을 사용하여 Svelte에 이벤트 탐지기를 추가합니다.우리는 그것으로 입력 이벤트를 들을 수 있고, 동적 입력을 표시하는 데 괄호를 쓸 수 있다.우리의 함수는 양방향 귀속을 사용하기 때문에, 우리는 bind:
을 사용하여 다른 태그에 사용할 수 있습니다. 이것은value 속성을 귀속시킨 다음price 변수에 귀속합니다.우리도 이렇게 묘사했다.마지막으로, 우리는 서적 구성 요소에서 내보낸 도구를 업데이트하여,
Book
표시로 되돌아갈 것입니다.이를 위해, 우리는 제목, 페이지, 설명의 값을 동적 전달하기 위해 괄호 {}
을 사용합니다.책 정보 표시
우리가 값을 입력할 때 카드를 업데이트했으니, 다음 단계는 우리가 책을 서점에 추가할 수 있도록 확보하는 것이다.우리가 해야 할 첫 번째 일은 단추를 다른 두 개의 구성 요소에서 사용할 수 있도록 독립된 구성 요소로 만드는 것이다.우리는
button.svelte
을 만들고 이를 각각 책과 앱 구성 요소로 가져와서 이 점을 실현합니다.<style>
button{
font : larger;
padding: 0.15rem 0.5rem;
background-color: #1b1a1a;
border: 1px solid aliceblue ;
cursor: pointer;
color: white;
}
</style>
<button on:click >
<slot/>
</button>
단추 태그에 on:click
속성이 있음을 알 수 있습니다. 이 속성은 단추의 원본 호출에서 이벤트 탐지기를 터치하여 다른 가져오기에서 원클릭 이벤트를 실제로 처리할 수 있도록 합니다.예:
app.svelte
<Button on:click={addBook}>ADD Book</Button>
이 기능은 addBook
기능과 결합하여 단추를 눌러 서적을 패턴에 동적으로 추가할 수 있습니다.let books =[]
function addBook(){
const newBook = {
title : title,
pages : pages,
description: description
};
books = books.concat(newBook)
}
위의 코드는script 태그에 존재합니다. 폼에서 책의 모든 속성을 호출하여 연결합니다.push가 책 변수를 변경하지 않기 때문에 concat
을 사용합니다.이것은 그룹만 변경하지만 concat
을 새 값에 분배하고 변경을 촉발합니다.우리는 현재 일련의 서적을 가지고 있는데, 이 서적들은 Svelte가 제공한 특수 표지를 사용하여 조건부로 표시한다.
{#if books.length === 0}
<p>
Add a new book
</p>
{:else}
{#each books as book}
<Book bookTitle={book.title} bookPages={book.pages} bookDescription={book.description}/>
{/each}
{/if}
새 책을 추가하라는 메시지가 표시되고 각 새 블록을 새 카드로 표시합니다.사용자 업데이트 후 카드에 대한 정보를 표시합니다.
도서 가격을 늘리다
이를 실현하기 위해서는
purchase.svelte
이라는 또 다른 구성 요소를 만들어야 한다.script 표시에서, 우리는 app.svelte
에서 정보를 도구로 책 표시에 전달하여 업데이트할 수 있도록books 변수를 내보내기를 희망합니다.app.svelte
에서 우리는 스크립트에 빈 그룹을 추가하여 구매한 책을 저장했다.지금 우리는 어떻게 이 구매에 책을 추가합니까?우리는 책 구성 요소의buy 단추를 사용하고 purchaseBook
함수를 추가하여 스크립트를 작성하고 on:{purchaseBook}
을 단추에 연결합니다.그리고 Svelte의 사용자 정의 라이브러리에서 스케줄링 함수를 만듭니다.
그런 다음
on:buy = {purchaseBook}
을 추가하여 이 함수를 Book 태그에 연결할 수 있습니다. 이 이벤트는 purchaseBook
함수에서 발송됩니다.function purchaseBook(event){
const selectedTitle= event.detail;
purchases = purchases.concat({
...books.find(book => book.title === selectedTitle )
});
}
결론
본고에서, 우리는 서점 프레젠테이션을 만들어서 Svelte의 기본적인 사용법을 이해하려고 한다.이 글은 SvelteJS의 강력한 기능을 이해하고 좋은 프로그램을 만드는 방법을 보여 줄 수 있기를 바랍니다.여기는 demo의 링크입니다.즐거운 인코딩!
편집자: 이 문장에 무슨 문제가 있습니까?정확한 버전 here을 찾을 수 있습니다.
플러그인: 네트워크 어플리케이션용 DVR용 LogRocket
LogRocket은 프론트 로그 기록 도구로 질문을 다시 재생할 수 있습니다. 마치 브라우저에서 발생한 것처럼.LogRocket은 오류가 발생한 원인을 추측하거나 화면 캡처와 로그 저장을 물어보지 않고 세션을 다시 재생할 수 있도록 합니다.프레임워크가 어떻든지 간에 모든 응용 프로그램과 완벽하게 어울릴 수 있으며, 플러그인은 Redux, Vuex, @ngrx/store의 추가 상하문을 기록합니다.
LogRocket은 Redux 작업과 상태를 기록하는 것 외에도 콘솔 로그, JavaScript 오류, 스택 추적, 헤더+본문이 있는 네트워크 요청/응답, 브라우저 메타데이터와 사용자 정의 로그를 기록합니다.또한 DOM은 페이지의 HTML과 CSS를 기록하여 가장 복잡한 단일 페이지 응용 프로그램이라도 픽셀 수준의 비디오를 재구성합니다.
Try it for free .
게시물 How to build a simple Svelte JS app이 LogRocket Blog에 먼저 올라왔습니다.
Reference
이 문제에 관하여(단순하고 컴팩트한 JS 어플리케이션을 구축하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bnevilleoneill/how-to-build-a-simple-svelte-js-app-2090텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)