오픈 소스 모험: 에피소드 43: SolidJS
8301 단어 solidjsjavascript
전에는 사용해 본 적이 없으므로 Hello World 앱부터 시작하겠습니다. 다음 몇 개의 에피소드에 걸쳐 좀 더 실질적인 것을 빌드하려고 합니다.
시작하기
degit
로 시작할 수 있습니다. 요즘 많은 프레임워크에서 가장 인기 있는 도구인 것 같습니다.$ npx degit solidjs/templates/js episode-43
그런 다음 일반적인 단계를 수행하여 앱을 시작합니다.
$ npm i
$ npm run dev
index.html
우리는 clean up
index.html
으로 시작할 수 있습니다. 이것은 여러분이 기대하는 것과 거의 같습니다.<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Solid App</title>
</head>
<body>
<div id="root"></div>
<script src="/src/index.jsx" type="module"></script>
</body>
</html>
index.jsx
이것은 템플릿에서도 나옵니다.
/* @refresh reload */
가 무엇인지 잘 모르겠습니다. HMR과 관련된 것일 가능성이 큽니다./* @refresh reload */
import { render } from "solid-js/web"
import "./index.css"
import App from "./App"
render(() => <App />, document.getElementById("root"))
index.css
SolidJS는 글로벌 및 (Svelte에서 오는 어색한) 모듈 범위 CSS를 모두 가지고 있습니다. 이 앱에서는 전역 CSS를 사용하겠습니다.
body {
margin: 0;
min-height: 100vh;
display: flex;
text-align: center;
justify-content: center;
align-items: center;
}
App.jsx
React with
useState
와 매우 유사해 보입니다. 의미 체계가 매우 다르고 count
뿐만 아니라 count()
를 사용하여 count
의 현재 값에 액세스하므로 완전히 동일하지 않습니다. 그러나 간단한 경우에는 React 개발자가 쉽게 전환할 수 있어야 합니다.import { createSignal } from "solid-js"
function App() {
let [count, setCount] = createSignal(0)
return (
<div>
<div>{ count() }</div>
<button onClick={() => setCount(count() + 1)}>Click me!</button>
</div>
)
}
export default App
앱 빌드
앱을 빌드하려면
npm run build
를 사용하면 dist
에 생성됩니다... 그리고 다시 한 번 절대 경로를 사용하므로 GitHub 페이지에서는 작동하지 않습니다. 왜 그렇게 많은 프레임워크가 이렇게 끔찍한 기본값을 가지고 있는지 모르겠습니다.상대 경로를 사용하려면 수정
vite.config.js
해야 합니다. 다행히 한 줄만 변경되었습니다base: "./"
.import { defineConfig } from "vite"
import solidPlugin from "vite-plugin-solid"
export default defineConfig({
base: "./",
plugins: [solidPlugin()],
build: {
target: "esnext",
polyfillDynamicImport: false,
},
})
지금까지의 이야기
결과는 다음과 같습니다.
저는 이것을 GitHub Pagesyou can see it here에 배포했습니다.
다음에 온다
다음 몇 개의 에피소드에서는 SolidJS를 사용하여 덜 사소한 것을 빌드하려고 합니다.
Reference
이 문제에 관하여(오픈 소스 모험: 에피소드 43: SolidJS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/taw/open-source-adventures-episode-43-solidjs-1f32텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)