Cách tạo trang đăng nhập trong ReactJs – a trong js phản ứng

Biết cách tạo trang đăng nhập trong Reactjs với ví dụ, cách sử dụng và cách chúng tôi có thể sử dụng trang này trong trang web của mình để tạo giao diện thân thiện với người dùng.

Bạn đang xem : a in react js

Các trang web bao gồm cả trang công khai và trang riêng tư. Một trang công khai được mở cho mọi người, nhưng một trang riêng tư yêu cầu người dùng đăng nhập. Xác thực có thể được sử dụng để kiểm soát người dùng có quyền truy cập vào những trang nào. Khi người dùng cố gắng truy cập trang riêng tư trước khi đăng nhập, Ứng dụng phản ứng của chúng tôi sẽ cần xử lý. Chúng tôi sẽ cần lưu thông tin đăng nhập sau khi chúng được xác thực thành công.

Chúng tôi sẽ tạo một API giả trả về mã thông báo của người dùng, trang đăng nhập tìm nạp mã thông báo và kiểm tra xác thực không yêu cầu định tuyến lại người dùng. Nếu người dùng không được xác thực, chúng tôi sẽ cung cấp cho họ tùy chọn đăng nhập trước khi cho phép họ tiếp tục mà không cần phải truy cập trang đăng nhập riêng biệt.

ReactJS thường được gọi là React hoặc React.js. ReactJS được nhiều công ty trong danh sách Fortune 500 ưa thích vì có nhiều tính năng hữu ích. Nó hỗ trợ các nhà phát triển trong việc tạo các trang web có thể thay đổi dữ liệu mà không cần phải khởi động lại trang. Có thể sử dụng các thư viện Javascript khác như Angular JS, Node JS và Express JS.

ReactJS là một thư viện Javascript để tạo giao diện người dùng khá phổ biến và thường xuyên được sử dụng. Facebook và các nhà phát triển / công ty cá nhân khác luôn cập nhật nó. Nó chủ yếu được sử dụng trong phát triển front-end và có một vị trí vững chắc trong ngành phát triển web, đặc biệt là để phát triển giao diện người dùng một trang. Nó phổ biến trong số các nhà phát triển ứng dụng trực tuyến và di động vì các tính năng giao diện người dùng tương tác nhanh chóng và đơn giản.

Vai trò điển hình nhất của thành phần vùng chứa là lấy dữ liệu. Lấy dữ liệu đề cập đến không chỉ là truy xuất dữ liệu từ điểm cuối của API; nó cũng đề cập đến logic của một thành phần React. Khi logic được thực thi hoặc dữ liệu được lấy trong thành phần, quá trình này đã hoàn tất. Nó làm cho thành phần liên quan có thể nhìn thấy được.

Các thành phần vùng chứa trong ứng dụng React được biết đến rộng rãi như các thành phần mẹ của các thành phần khác. Chúng hoạt động như một liên kết giữa các thành phần tiêu chuẩn hiển thị giao diện người dùng và logic làm cho giao diện người dùng tương tác và động.

Ngoài ra, hãy nhớ đưa thành phần của chúng tôi vào tiêu đề.

Bây giờ, bên dưới trang chủ & lt; Route & gt ;, chúng ta thêm dòng sau vào src / Routes.js để kết nối vùng chứa này với phần còn lại của dự án của chúng ta.

Trong React, React Router là một thư viện tiêu chuẩn cho định tuyến. Nó cho phép người dùng điều hướng giữa các chế độ xem của các thành phần khác nhau trong một ứng dụng React, thay đổi URL của trình duyệt và giữ cho giao diện người dùng đồng bộ với URL.

Điều kiện tiên quyết

  • Chúng tôi sẽ cần một môi trường phát triển Node.js; Hướng dẫn này đã được thử nghiệm với phiên bản 10.22.0 của Node.js và phiên bản 6.14.6 của npm.
  • Tạo Ứng dụng React đã được sử dụng để thiết lập môi trường phát triển React với việc loại bỏ các bản soạn thảo không cần thiết.
  • Chúng tôi sẽ sử dụng React để lấy dữ liệu từ các API. Vì vậy, chúng ta phải hiểu rõ về API.
  • Chúng tôi cũng phải có kiến ​​thức tốt về HTML, CSS , Javascript trước khi xây dựng dự án này.

Bước 1 – Xây dựng Trang đăng nhập

Tạo trang đăng nhập cho ứng dụng của chúng tôi ở giai đoạn này. Cài đặt React Router và thiết kế các thành phần để đại diện cho một ứng dụng toàn diện là những bước đầu tiên. Trang đăng nhập sau đó sẽ được hiển thị trên bất kỳ tuyến đường nào, cho phép người dùng của chúng tôi đăng nhập mà không bị chuyển sang trang mới.

Để bắt đầu, hãy sử dụng npm để cài đặt bộ định tuyến phản ứng. Có sẵn hai phiên bản: phiên bản trình duyệt và phiên bản gốc có thể được sử dụng với React Native. Cài đặt phiên bản web là ưu tiên.

npm cài đặt react-router-dom

Gói sẽ được cài đặt và chúng tôi sẽ được thông báo khi hoàn tất.

Khóa học dành cho nhà phát triển web Full Stack

Để trở thành chuyên gia trong MEAN Stack

Xem khóa học Khóa học dành cho nhà phát triển web Full Stack

Sau đó, dưới dạng các trang riêng tư, hãy thêm hai thành phần được gọi là Trang tổng quan và Tùy chọn. Đây là những thành phần không được hiển thị cho người dùng cho đến khi họ đăng nhập thành công vào ứng dụng.

Để bắt đầu, hãy tạo các thư mục sau:

mkdir src / components / Trang tổng quan

mkdir src / components / Preferences

Sau đó, trong trình soạn thảo văn bản, hãy mở Dashboard.js. Nano sẽ được sử dụng trong hướng dẫn này.

nano src / components / Dashboard / Dashboard.js

Tạo & lt; h3 & gt; trong Dashboard.js với nội dung sau:

nhập React từ ‘react’;

xuất Trang tổng quan chức năng mặc định () {

trở lại (

& lt; h2 & gt; Trang tổng quan & lt; / h2 & gt;

);

}

Thực hiện theo quy trình tương tự cho Preferences.

Sau khi tạo một số thành phần, chúng tôi sẽ cần nhập chúng và xác định các tuyến trong App.js.

Xem Thêm  Các vòng lặp lồng nhau trong Python - các ví dụ về vòng lặp lồng nhau trong python

Để bắt đầu, hãy mở App.js:

nano src / components / App / App.js

Sau đó, thêm mã sau vào Trang tổng quan và Tùy chọn để nhập chúng:

nhập React từ ‘react’;

nhập ‘./App.css’;

nhập Trang tổng quan từ ‘../Dashboard/Dashboard’;

nhập Tùy chọn từ ‘../Preferences/Preferences’;

function App () {

trở lại (

& lt; & gt; & lt; / & gt;

);

}

xuất Ứng dụng mặc định;

Sau đó, từ react-router-dom, nhập BrowserRouter, Switch và Route.

nhập React từ ‘react’;

nhập ‘./App.css’;

nhập {BrowserRouter, Route, Switch} từ ‘react-router-dom’;

nhập Trang tổng quan từ ‘../Dashboard/Dashboard’;

nhập Tùy chọn từ ‘../Preferences/Preferences’;

function App () {

trở lại (

& lt; & gt; & lt; / & gt;

);

}

xuất Ứng dụng mặc định;

Bước tiếp theo là thêm phần đệm vào & lt; div & gt; để thành phần của chúng tôi không nằm trực tiếp trên cạnh của trình duyệt. Chúng tôi sẽ cần cập nhật CSS để thực hiện điều này.

Mở App.css

nano src / components / App / App.css

Thay thế nội dung bằng lớp a.wrapper với phần đệm 20px.

.wrapper {

padding: 20px;

}

Tệp phải được lưu và đóng lại. Trình duyệt sẽ tải lại và chúng ta sẽ thấy các thành phần cơ bản.

Login_Page_in_ReactJS_2

Login_Page_in_ReactJS_3.

Bây giờ, chúng tôi tùy thuộc vào việc thêm một số kiểu dáng hoàn toàn không bắt buộc.

Kiểm tra từng tuyến đường và chúng tôi sẽ tìm thấy các trang tổng quan của chúng tôi.

Khóa học mới: Phát triển toàn bộ ngăn xếp cho người mới bắt đầu

Học lệnh Git, Angular, NodeJS, Maven & amp; Thêm

Đăng ký ngay Khóa học mới: Phát triển ngăn xếp đầy đủ cho người mới bắt đầu

Bước 2 – Tạo API mã thông báo

Chúng tôi sẽ tạo một API cục bộ để lấy mã thông báo của người dùng trong giai đoạn này. Chúng tôi sẽ sử dụng Node.js để tạo một API giả lập trả về một công dụng. \ r mã thông báo. Sau khi truy xuất thành công mã thông báo, chúng tôi sẽ sử dụng API đó từ trang đăng nhập của mình và hiển thị thành phần. Đến cuối giai đoạn này, chúng tôi sẽ có một trang đăng nhập đang hoạt động cũng như các trang web được bảo vệ chỉ có thể được truy cập sau khi đăng nhập.

Chúng tôi sẽ cần một máy chủ hoạt động như một chương trình phụ trợ và trả lại mã thông báo. Sử dụng Node.js và khung công tác web Express, chúng tôi có thể dễ dàng thiết lập một máy chủ.

Để bắt đầu, hãy tải xuống và cài đặt express. Vì máy chủ không cần thiết cho bản dựng cuối cùng, hãy cài đặt nó dưới dạng devDependency.

Chúng tôi cũng sẽ phải thiết lập cors. Thư viện này sẽ cho phép tất cả các tuyến đường chia sẻ tài nguyên giữa các nguồn.

npm install –save-dev express cors

Chúng tôi sẽ nhận được thông báo thành công khi quá trình cài đặt hoàn tất.

Sau đó, tại thư mục gốc của ứng dụng của chúng tôi, hãy tạo một tệp mới có tên server.js. Vì chúng tôi không muốn tệp này là một phần của bản dựng cuối cùng, nên đừng đặt nó vào thư mục / src.

nano server.js

Nhập express, sau đó gọi express () để tạo một ứng dụng mới và lưu kết quả đầu ra vào một biến có tên là ứng dụng.

const express = request (‘express’);

const app = express ();

Thêm cors làm phần mềm trung gian sau khi chúng tôi xây dựng xong ứng dụng. Trước tiên, hãy nhập các cors, sau đó thực thi phương thức sử dụng trên ứng dụng để thêm nó vào ứng dụng.

const express = request (‘express’);

const cors = request (‘cors’);

const app = express ();

app.use (cors ());

Sau đó, sử dụng app.use, lắng nghe một tuyến đường nhất định. Đối số đầu tiên là đường dẫn mà ứng dụng sẽ lắng nghe và đối số thứ hai chỉ định một hàm gọi lại sẽ được thực thi khi đường dẫn được phục vụ. Lệnh gọi lại nhận hai đối số: đối số req có dữ liệu yêu cầu và đối số res chứa kết quả.

Một trình xử lý cho / đường dẫn đăng nhập sẽ được thêm vào. Với một đối tượng JavaScript đang giữ một mã thông báo, hãy gọi res.send.

const express = request (‘express’);

const cors = demand (‘cors’)

const app = express ();

app.use (cors ());

app.use (‘/ login’, (req, res) = & gt; {

res.send ({

mã thông báo: ‘test123’

});

});

Cuối cùng nhưng không kém phần quan trọng, hãy khởi động máy chủ trên cổng bằng app.listen.

const express = request (‘express’);

const cors = demand (‘cors’)

const app = express ();

app.use (cors ());

app.use (‘/ login’, (req, res) = & gt; {

res.send ({

mã thông báo: ‘test123’

});

});

app.listen (8080, () = & gt; console.log (‘API đang chạy trên http: // localhost: 8080 / login’));

Tệp phải được lưu và đóng lại. Khởi động máy chủ trong một cửa sổ hoặc tab đầu cuối mới.

node server.js

Login_Page_in_ReactJS_4

Chúng tôi sẽ nhận được phản hồi cho biết máy chủ đang thiết lập:

Đầu ra:

API đang chạy trên http: // localhost: 8080 / login

Khóa học dành cho nhà phát triển Java Full Stack

Hợp tác với HIRIST và HackerEarth

KHÁM PHÁ KHÓA HỌC Full Stack Java Developer Course

Bây giờ, máy chủ API của chúng tôi đã được thiết lập và đang chạy, chúng tôi phải thực hiện yêu cầu từ trang đăng nhập của mình. Login.js hiện đã được mở.

nano src / components / Login / Login.js

Chúng tôi đã cung cấp cho thành phần Đăng nhập một phần mềm hỗ trợ mới có tên setToken trong bước trước. Hủy cấu trúc đối tượng props để trích xuất phần mềm setToken và thêm PropType từ phần mềm mới.

nhập React từ ‘react’;

nhập PropTypes từ ‘prop-type’;

nhập ‘./Login.css’;

xuất chức năng mặc định Đăng nhập ({setToken}) {

trở lại (

& lt; div className = “login-wrapper” & gt;

& lt; h1 & gt; Vui lòng Đăng nhập & lt; / h1 & gt;

& lt; biểu mẫu & gt;

& lt; nhãn & gt;

Xem Thêm  Hướng dẫn cho các nút radio - Ứng dụng Windows - Các nút radio trên biểu mẫu là gì

& lt; p & gt; Tên người dùng & lt; / p & gt;

& lt; input type = “text” / & gt;

& lt; / label & gt;

& lt; nhãn & gt;

& lt; p & gt; Mật khẩu & lt; / p & gt;

& lt; input type = “password” / & gt;

& lt; / label & gt;

& lt; div & gt;

& lt; button type = “submit” & gt; Gửi & lt; / button & gt;

& lt; / div & gt;

& lt; / form & gt;

& lt; / div & gt;

)

}

Login.propTypes = {

setToken: PropTypes.func.isRequired

}

Đặt trạng thái cục bộ để lưu Tên người dùng và Mật khẩu. Tạo & lt; đầu vào & gt; các thành phần không được kiểm soát, vì vậy chúng tôi không phải chỉ định dữ liệu một cách rõ ràng.

nhập React, {useState} từ ‘react’;

nhập PropTypes từ ‘prop-type’;

nhập ‘./Login.css’;

xuất chức năng mặc định Đăng nhập ({setToken}) {

const [tên người dùng, setUserName] = useState ();

const [password, setPassword] = useState ();

trở lại (

& lt; div className = “login-wrapper” & gt;

& lt; h1 & gt; Vui lòng Đăng nhập & lt; / h1 & gt;

& lt; biểu mẫu & gt;

& lt; nhãn & gt;

& lt; p & gt; Tên người dùng & lt; / p & gt;

& lt; input type = “text” onChange = {e = & gt; setUserName (e.target.value)} / & gt;

& lt; / label & gt;

& lt; nhãn & gt;

& lt; p & gt; Mật khẩu & lt; / p & gt;

& lt; input type = “password” onChange = {e = & gt; setPassword (e.target.value)} / & gt;

& lt; / label & gt;

& lt; div & gt;

& lt; button type = “submit” & gt; Gửi & lt; / button & gt;

& lt; / div & gt;

& lt; / form & gt;

& lt; / div & gt;

)

}

Login.propTypes = {

setToken: PropTypes.func.isRequired

};

Tạo một hàm thực hiện yêu cầu ĐĂNG lên máy chủ. Chúng sẽ được đặt trong một thư mục riêng trong một ứng dụng lớn. Trong trường hợp này, chúng tôi sẽ thêm dịch vụ trực tiếp vào thành phần.

Khóa học miễn phí: Cơ bản về lập trình

Tìm hiểu kiến ​​thức cơ bản về lập trình

Đăng ký Hiện tại Khóa học miễn phí: Cơ bản về lập trình

Tạo chức năng không đồng bộ của loginUser. Hàm sẽ lấy thông tin đăng nhập làm đầu vào và sau đó sử dụng tùy chọn POST để gọi phương thức truy xuất:

nhập React, {useState} từ ‘react’;

nhập PropTypes từ ‘prop-type’;

nhập ‘./Login.css’;

đăng nhập chức năng không đồng bộ Người dùng (thông tin xác thực) {

tìm nạp trả về (‘http: // localhost: 8080 / login’, {

phương thức: ‘POST’,

tiêu đề: {

‘Loại-Nội dung’: ‘application / json’

},

body: JSON.stringify (thông tin xác thực)

})

.then (data = & gt; data.json ())

}

xuất chức năng mặc định Đăng nhập ({setToken}) {

Cuối cùng, xây dựng một trình xử lý gửi biểu mẫu handleSubmit sẽ cung cấp tên người dùng và mật khẩu để đăng nhậpUser. Với một kết quả thành công, hãy gọi setToken.

Sử dụng trình xử lý sự kiện onSubmit trên biểu mẫu để gọi handleSubmit.

nhập React, {useState} từ ‘react’;

Nhập PropTypes từ ‘prop-type’;

nhập ‘./Login.css’;

đăng nhập chức năng không đồng bộ Người dùng (thông tin xác thực) {

tìm nạp trả về (‘http: // localhost: 8080 / login’, {

phương thức: ‘POST’,

tiêu đề: {

‘Loại-Nội dung’: ‘application / json’

},

body: JSON.stringify (thông tin xác thực)

})

.then (data = & gt; data.json ())

}

xuất chức năng mặc định Đăng nhập ({setToken}) {

const [tên người dùng, setUserName] = useState ();

const [password, setPassword] = useState ();

const handleSubmit = async = & gt; {

e.preventDefault ();

const token = chờ đăng nhậpUser ({

tên người dùng,

mật khẩu

});

setToken (mã thông báo);

}

trở lại (

).

& lt; div className = “login-wrapper” & gt;

& lt; h1 & gt; Vui lòng Đăng nhập & lt; / h1 & gt;

& lt; form onSubmit = {transactionSubmit} & gt;

& lt; nhãn & gt;

& lt; Tên người dùng & lt; / p & gt;

& lt; input type = “text” onChange = {e = & gt; setUserName (e.target.value)} / & gt;

& lt; / label & gt;

& lt; nhãn & gt;

& lt; Mật khẩu & lt; / p & gt;

& lt; input type = “password” onChange = {e = & gt; setPassword (e.target.value)} / & gt;

& lt; / label & gt;

& lt; div & gt;

& lt; button type = “submit” & gt; Gửi & lt; / button & gt;

& lt; / div & gt;

& lt; / form & gt;

& lt; / div & gt;

)

}

Login.propTypes = {

setToken: PropTypes.func.isRequired

};

Thay vì trang tổng quan, chúng ta sẽ thấy trang đăng nhập. Sau khi hoàn thành và gửi biểu mẫu, chúng tôi sẽ nhận được mã thông báo web và được chuyển hướng đến trang tổng quan.

Giờ đây, chúng tôi có một API cục bộ đang hoạt động và một ứng dụng sử dụng tên người dùng và mật khẩu để yêu cầu mã thông báo. Tuy nhiên, vẫn còn một vấn đề. Mã thông báo hiện được lưu trong bộ nhớ JavaScript, sử dụng trạng thái cục bộ. Chúng tôi sẽ mất mã thông báo nếu chúng tôi mở một cửa sổ, tab mới hoặc thậm chí chỉ làm mới trang web và người dùng sẽ phải đăng nhập lại.

Bước 3 – Lưu trữ Mã người dùng với SessionStorage và LocalStorage

Mã thông báo người dùng sẽ được lưu ở giai đoạn này. Các phương pháp lưu trữ mã thông báo khác nhau sẽ được triển khai và tác động bảo mật của từng giải pháp sẽ được thảo luận. Chúng tôi sẽ khám phá những cách khác nhau ảnh hưởng đến trải nghiệm của người dùng khi họ mở tab mới hoặc kết thúc phiên.

Mã thông báo có thể được lưu trữ theo nhiều cách khác nhau. Có chi phí và lợi ích cho mỗi cách tiếp cận. Tóm lại, có bốn tùy chọn: lưu trong bộ nhớ JavaScript, sessionStorage, localStorage và lưu trữ cookie. Bảo mật là sự đánh đổi chính. Các cuộc tấn công Cross-Site Scripting (XSS) có thể ảnh hưởng đến bất kỳ dữ liệu nào được lưu trữ bên ngoài bộ nhớ của ứng dụng hiện tại. Rủi ro là nếu người dùng độc hại có thể tải mã vào ứng dụng của chúng tôi, họ sẽ có quyền truy cập vào localStorage, sessionStorage và bất kỳ cookie nào mà ứng dụng của chúng tôi có quyền truy cập. Các giải pháp lưu trữ không dùng bộ nhớ mang lại lợi thế là giảm số lần người dùng phải đăng nhập, mang lại trải nghiệm người dùng tốt hơn.

Xem Thêm  JavaScript forEach Loops Made Easy - cho mỗi vòng lặp trong javascript

Sử dụng localStorage để lưu dữ liệu trên Windows

LocalStorage, không giống như sessionStorage, lưu dữ liệu rất lâu sau khi phiên kết thúc. Điều này thuận tiện hơn vì nó cho phép người dùng mở một số cửa sổ và tab mà không cần phải đăng nhập lại, nhưng nó có một số vấn đề bảo mật nhất định. Ngay cả khi người dùng đóng trình duyệt, họ sẽ vẫn đăng nhập vào chương trình nếu họ dùng chung máy tính của mình. Người dùng sẽ có trách nhiệm đăng xuất một cách rõ ràng. Không yêu cầu đăng nhập, người dùng tiếp theo sẽ có quyền truy cập ngay vào ứng dụng. Đó là một rủi ro, nhưng đối với một số ứng dụng, sự tiện lợi có thể xứng đáng với rủi ro.

Mở useToken.js để chuyển đổi sang localStorage.

nano src / components / App / useToken.js

Sau đó, thay thế mọi tham chiếu đến sessionStorage bằng localStorage. Chúng tôi sẽ sử dụng các quy trình tương tự như trước đây.

nhập {useState} từ ‘react’;

xuất hàm mặc định useToken () {

const getToken = () = & gt; {

const tokenString = localStorage.getItem (‘mã thông báo’);

const userToken = JSON.parse (tokenString);

trả lại userToken? .token

};

const [token, setToken] = useState (getToken ());

const saveToken = userToken = & gt; {

localStorage.setItem (‘mã thông báo’, JSON.stringify (userToken));

setToken (userToken.token);

};

trả lại {

setToken: saveToken,

mã thông báo

}

}

Login_Page_in_ReactJS_6

Lưu tài liệu. Trình duyệt sẽ tải lại sau khi tài liệu được lưu. Vì chưa có mã thông báo trong localStorage, chúng tôi sẽ cần đăng nhập lại, nhưng khi đã đăng nhập, chúng tôi sẽ vẫn đăng nhập khi mở tab mới.

Chúng tôi đã sử dụng sessionStorage và localStorage để lưu mã thông báo trong giai đoạn này. Chúng tôi cũng tạo một Hook tùy chỉnh để thực hiện việc kết xuất lại thành phần và chuyển logic thành phần sang một chức năng khác. Chúng tôi cũng đã tìm hiểu cách sessionStorage và localStorage ảnh hưởng đến khả năng người dùng bắt đầu các phiên mới mà không cần đăng nhập.

Nếu bạn mong muốn đạt được các kỹ năng cần thiết để làm việc trong vai trò CNTT đầy thử thách, bổ ích và năng động – chúng tôi đã hỗ trợ bạn! Khám phá những cơ hội vô tận thông qua khóa học Post Graduate Program in Full Stack Web Development được thiết kế bởi các đối tác của chúng tôi tại Caltech CTME. Đăng ký ngay hôm nay!


Xem thêm những thông tin liên quan đến chủ đề a trong js phản ứng

( React Js ) Khmer React Router Dom | ភ្ជាប់ពីមួយ Page ទៅមួយ Page react-router-dom – Rorn Tech

alt

  • Tác giả: Rorn Tech
  • Ngày đăng: 2022-07-11
  • Đánh giá: 4 ⭐ ( 6092 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: សួរស្តីអ្នកទាំងអស់គ្នា

    Donate Me ABA : 500 573 754 For Micro

    សូមស្វាគម៏មកកាន់ Video ថ្មីរបស់ខ្ញុំ​។សូមជួយចុច Like Comment និង Subscript ដើម្បីទទួលបាន Video ថ្មី ពី Channel នេះភ្លាមភ្លាមសូមអរគុណ ។

    Hi All This is Rorn Here. This is my new Video Please Don’t forget to like comment and Subscript to my channel to get more Toturials Like This Thanks You .

    Title : ( React Js ) Khmer React Router Dom ភ្ជាប់ពីមួយ Page ទៅមួយ Page react router dom – Rorn Tech

    Crash course :
    – HTML-CSS : https://www.youtube.com/watch?v=ZUrJKXEyVOw&t=2659s
    – JAVASCRIPT : https://www.youtube.com/watch?v=yFbfXEFIvrc&t=3836s
    – Taiwind-CSS : https://youtu.be/DxEarb7Cib4
    – React Js : https://youtu.be/nxaYob5GVHc

    //////////////////////
    Content:
    ////////////////////////

    Contact me :
    Telegram: 092967078
    Facebook: https://web.facebook.com/profile.php?id=100082005107198
    IG:

    Keyword:::
    khmer coding, khmer teaching code, khmer couse of developer, khmer lern how to code, free course html css, free cours for lern, html css, javascript, webdeveloper, khmer deverloper,khmer coding, software developer khmer, software developer in cambodia,ការរៀនបង្កើតwebsite,ការរៀនhtml ការរៀន css,ការរៀនjavascript,React JS Crash Course | React JS In Khmer | បង្រៀន React Js Free ជាភាសាខ្មែរ – Rorn Tech,React JS Crash Course | React JS In Khmer | បង្រៀន React Js Free ជាភាសាខ្មែរ
    ( React Js ) Khmer React Router Dom ភ្ជាប់ពីមួយ Page ទៅមួយ Page react router dom – Rorn Tech

Cho các phát biểu sau: (a) Trong các phản ứng hóa học, ion Fe2+ chỉ thể hiện tính khử. [đã giải] – Học Hóa Online

  • Tác giả: hoctap.dvtienich.com
  • Đánh giá: 4 ⭐ ( 7782 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Tìm hiểu về Asynchronous trong JavaScript

  • Tác giả: hocjavascript.net
  • Đánh giá: 3 ⭐ ( 7160 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Vậy JavaScript mới tạo ra Asynchronous để giúp chúng ta làm việc này (như Callback, Promise, Async/Await) giúp luồng chạy của web không bị chặn lại khi đợi

Javascript – a++ và ++a khác nhau như thế nào?

  • Tác giả: freetuts.net
  • Đánh giá: 5 ⭐ ( 2498 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Cho hai phép toán a++ và ++a, trong hai phép toán này sẽ có sự khác nhau như thế nào? Hãy phân tích sự giống nhau và khác nhau giữa hai biểu thức a++ và ++a.

Xây dựng ứng dung CRUD javascript.

  • Tác giả: viblo.asia
  • Đánh giá: 3 ⭐ ( 6170 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Introduction Trong hướng dẫn này, chúng ta sẽ xem xét cách tạo một ứng dụng Crud bằng JavaScript. Chúng ta sẽ tạo một ứng dụng tên Todo. Nó tập trung nhiều hơn vào những người mới học javascript. Ứng…

Computed property và watcher — Vue.js

  • Tác giả: vi.vuejs.org
  • Đánh giá: 3 ⭐ ( 9390 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Vue.js – Framework JavaScript linh động

Đục khoét Javascript (Phần 13): Bên trong CSS & JS animation & các giải pháp tối ưu hiệu năng của nó

  • Tác giả: kipalog.com
  • Đánh giá: 3 ⭐ ( 3514 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài này mình để nguyên chữ “Animation” (và các động từ, tính từ của nó) mà không dịch vì không biết dịch sao cho hợp nghĩa @_@ Bài viết được dịch …

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình