- vừa được xem lúc

Series SolidJS - Tập 2: Khởi tạo project SolidJS và cùng xem có gì trong đó nhé.

0 0 32

Người đăng: Pate Kem

Theo Viblo Asia

Giới thiệu

Hello everyone, chúng ta lại gặp nhau nữa rồi ✌️

Tập trước trong series mình đã chia sẻ những thông tin xung quanh quanh công nghệ SolidJS.

Ở tập này mình và các bạn sẽ cùng nhau khởi tạo project cơ bản bằng SolidJS và phân tích vào các chức năng đã được giới thiệu ở tập trước nhé.

Nội dung

Đây là nội dung mình sẽ giới thiệu trong tập này, let's go 🔥


🖥️ Khởi tạo project SolidJS (sử dụng Vite):

Mình sẽ tạo project SolidJS (sử dụng Vite) đi với Javascript thuần nhé.

📝 Note: Vite là một Frontend Build Tool giúp thực hiện việc khởi tạo và setup các project FE nhanh chóng và dễ dàng ⚡️ (Vite được tạo ra bởi cha đẻ của VueJS - Evan You)

# Create an app from a Solid template (Tạo mới ứng dụng từ Solid template)
npx degit solidjs/templates/js my-app # Change directory to the project created (Di chuyển đến thư mục ứng dụng đã tạo)
cd my-app # Install dependencies (Cài đặt các thành phần cần thiết để start ứng dụng)
npm i # or yarn or pnpm # Start the dev server (Chạy ứng dụng trên môi trường dev)
npm run dev

https://github.com/solidjs/templates có hỗ trợ TypeScript, vì vậy nếu bạn muốn bắt đầu tạo project với TypeScript, hãy thay đổi câu lệnh thành npx degit solidjs/templates/ts my-app.

Đây là thành quả sau khi đã chạy lệnh npm run dev thành công nhé (truy cập vào đường dẫn http://localhost:3000/)

Cấu trúc thư mục:

Nếu bạn đã từng học qua ReactJS và có biết đến câu thần chú create-react-app thì sẽ thấy cấu trúc source code, syntax của SolidJS quen thuộc đúng không nào?

Đúng vậy bạn không nhầm đâu, cả ReactJS lẫn SolidJS đều khá giống nhau đấy kkk 😂

🎬 Vọc vạch về JSX - Javascript XML trong SolidJS

Hãy cùng mình xem 1 ví dụ bên dưới nhé

import { render } from "solid-js/web"; const HelloEveryone = () => { return <div>Hello everyone, my name is Pate Kem.</div>; } render( () => <HelloEveryone/>, document.getElementById("root")
);

Trong hình trên bạn hãy chú ý đến hàm HelloEveryone, nó trực tiếp trả về một thẻ <div> nội dung... </div> có chứa nội dụng bên trong.

Mỗi ứng dụng SolidJS sẽ bao gồm các chức năng được gọi là các thành phần (Components).

Đó là sự kết hợp giữa HTMLJavaScript được gọi là JSX. Solid sẽ vận chuyển chúng đi qua một trình biên dịch để biến các thẻ này thành các nút DOM (DOM nodes) hiển thị lên giao diện.

JSX cho phép bạn sử dụng hầu hết các phần tử HTML, nó cũng cho phép bạn tạo ra các phần tử mới. Khi chúng ta đã khai báo hàm HelloEveryone, chúng ta có thể sử dụng nó làm thẻ <HelloEveryone> trong chính ứng dụng của mình (hay còn gọi là Component).

🚛 Cách hoạt động cơ bản của ứng dụng SolidJS

Mình sẽ dùng lại code mẫu ở trên để miêu tả cụ thể cách thức hoạt động đơn giản của nó nhé.

import { render } from "solid-js/web"; const HelloEveryone = () => { return <div>Hello everyone, my name is Pate Kem.</div>; } render( () => <HelloEveryone/>, document.getElementById("root")
);

Ở đây chúng ta sẽ thấy được hàm render có cú pháp (syntax) tương tự như hàm render trong ReactJS 👀

Đây là hàm chức năng chính của SolidJS để kết xuất lại Components sau đấy thể hiện trên giao diện ứng dụng (DOM - Document Object Model)

Chúng ta cần cung cấp 2 đối số cho hàm render:

  • Một Component đóng gói mã ứng dụng
  • Một phần tử hiện có trong giao diện HTML để gắn vào
render( () => <HelloEveryone/>, // đối số 1 document.getElementById("root") // đối số 2
);

Các bạn hãy mở file index.jsx + file index.html trong source vừa tạo và bạn sẽ thấy thẻ <div id="root"></div>, đó chính là nơi sẽ render ra ứng dụng của bạn.

Dựa theo đoạn code trên, nó sẽ được SolidJS biên dịch thành các biểu thức trên DOM thực, trông nó sẽ giống như sau:

import { template, render, createComponent } from "solid-js/web"; const _tmpl = template(`<div>Hello everyone, my name is Pate Kem.</div>`, 2); const HelloEveryone = () => { return _tmpl.cloneNode(true);
}; render( () => createComponent(HelloEveryone, {}), document.getElementById("root")
);

Solid Playground khá thú vị khi cho ta thấy SolidJS có nhiều cách khác nhau để render: CSR - Client side rendering, SSR - Server side rendering, Client side rendering with hydration.

Tổng kết lại tập 2 thôi nào

Ở tập 2 này chúng ta đã bắt đầu tìm hiểu về syntax code và cách 1 ứng dụng SolidJS hoạt động cơ bản như thế nào 😎

Trong tập sau mình sẽ cùng đi vào các phần tiếp theo nhé:

Cảm ơn các bạn đã theo dõi tập 2 trong series về SolidJS. Nếu các bạn có thắc mắc hoặc góp ý về bài viết hãy comment giúp mình nhé, cảm ơn các bạn 😘

Tham khảo

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 525

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 433

- vừa được xem lúc

Một số phương thức với object trong Javascript

Trong Javascript có hỗ trợ các loại dữ liệu cơ bản là giống với hầu hết những ngôn ngữ lập trình khác. Bài viết này mình sẽ giới thiệu về Object và một số phương thức thường dùng với nó.

0 0 153

- vừa được xem lúc

Tìm hiểu về thư viện axios

Giới thiệu. Axios là gì? Axios là một thư viện HTTP Client dựa trên Promise.

0 0 145

- vừa được xem lúc

Imports và Exports trong JavaScript ES6

. Giới thiệu. ES6 cung cấp cho chúng ta import (nhập), export (xuất) các functions, biến từ module này sang module khác và sử dụng nó trong các file khác.

0 0 110

- vừa được xem lúc

Bài toán đọc số thành chữ (phần 2) - Hoàn chỉnh chương trình dưới 100 dòng code

Tiếp tục bài viết còn dang dở ở phần trước Phân tích bài toán đọc số thành chữ (phần 1) - Phân tích đề và những mảnh ghép đầu tiên. Bạn nào chưa đọc thì có thể xem ở link trên trước nhé.

0 0 245