오픈 소스 모험: 에피소드 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.)