چارچوب های سمت کلاینت جاوا اسکریپت: راهنمای جامع

مقدمه ای بر چارچوب های سمت مشتری
در چشم انداز توسعه وب مدرن، چارچوب های سمت مشتری به ابزارهای ضروری برای ساخت برنامه های کاربردی وب پویا، پاسخگو و کارآمد تبدیل شده اند. این چارچوبها کد ساختاریافته و قابل استفاده مجدد را ارائه میکنند و توسعه را سریعتر و آسانتر میکنند. این پست برخی از محبوب ترین چارچوب های سمت کلاینت جاوا اسکریپت را بررسی می کند: React، Ember، Vue، Svelte و Angular.
ویژگی های اصلی چارچوب
قبل از فرو رفتن در چارچوب های خاص، اجازه دهید برخی از ویژگی های رایج چارچوب های سمت مشتری را بیان کنیم:
- معماری مبتنی بر کامپوننت: ساخت UI ها به عنوان مجموعه ای از اجزای قابل استفاده مجدد.
- مدیریت دولتی: مدیریت کارآمد وضعیت برنامه.
- مسیریابی: مدیریت پیمایش بین قسمت های مختلف یک برنامه.
- اتصال داده ها: همگام سازی داده ها بین رابط کاربری و مدل.
- بهینه سازی عملکرد: تضمین تجربه کاربری روان و سریع.
واکنش نشان دهید
شروع کار با React
React یک کتابخانه جاوا اسکریپت برای ساخت رابط کاربری است. این توسط فیس بوک و جامعه ای از توسعه دهندگان و شرکت ها نگهداری می شود.
نصب و راه اندازی:
npx create-react-app my-app
cd my-app
npm start
شروع لیست React Todo ما
ساختار پایه:
import React from 'react';
import ReactDOM from 'react-dom';
function App() {
return (
<div className="App">
<h1>Todo Listh1>
div>
);
}
ReactDOM.render(<App />, document.getElementById('root'));
کامپوننت کردن برنامه React ما
ایجاد کامپوننت:
function TodoItem({ todo }) {
return <li>{todo.text}li>;
}
function TodoList({ todos }) {
return (
<ul>
{todos.map(todo => <TodoItem key={todo.id} todo={todo} />)}
ul>
);
}
واکنش تعاملی: رویدادها و وضعیت
دولت مدیریت:
function App() {
const [todos, setTodos] = React.useState([]);
function addTodo() {
setTodos([...todos, { id: Date.now(), text: 'New Todo' }]);
}
return (
<div>
<button onClick={addTodo}>Add Todobutton>
<TodoList todos={todos} />
div>
);
}
واکنش تعاملی: ویرایش، فیلتر کردن، رندر شرطی
ویرایش و فیلترینگ:
function TodoItem({ todo, onEdit }) {
return (
<li>
{todo.text} <button onClick={() => onEdit(todo)}>Editbutton>
li>
);
}
function TodoList({ todos, onEdit }) {
return (
<ul>
{todos.map(todo => (
<TodoItem key={todo.id} todo={todo} onEdit={onEdit} />
))}
ul>
);
}
دسترسی در React
افزودن ویژگی های ARIA:
function App() {
return (
<div>
<h1 aria-live="polite">Todo Listh1>
{/* Rest of the components */}
div>
);
}
React Resources
اخگر
شروع کار با Ember
Ember.js یک چارچوب وب جاوا اسکریپت منبع باز است که بر اساس الگوی Model-View-ViewModel (MVVM) است.
نصب و راه اندازی:
npm install -g ember-cli
ember new my-app
cd my-app
ember serve
Ember App Structure and Componentization
ساختار پایه:
// app/components/todo-list.js
import Component from '@glimmer/component';
export default class TodoListComponent extends Component {
}
Ember Interactivity: رویدادها، کلاسها و وضعیت
دولت مدیریت:
// app/components/todo-list.js
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
export default class TodoListComponent extends Component {
@tracked todos = [];
addTodo() {
this.todos = [...this.todos, { id: Date.now(), text: 'New Todo' }];
}
}
Ember Interactivity: قابلیت فوتر، رندر شرطی
رندر شرطی:
{{#if this.todos.length}}
{{#each this.todos as |todo|}}
{{todo.text}}
{{/each}}
{{else}}
No todos yet!
{{/if}}
مسیریابی در Ember
تعریف مسیرها:
// app/router.js
Router.map(function() {
this.route('todos');
});
منابع Ember و عیب یابی
Vue
شروع کار با Vue
Vue.js یک چارچوب جاوا اسکریپت مترقی برای ساخت رابط کاربری است.
نصب و راه اندازی:
npm install -g @vue/cli
vue create my-app
cd my-app
npm run serve
ایجاد اولین مؤلفه Vue ما
جزء اصلی:
<template>
Todo List
template>
<script>
export default {
name: 'App',
}
script>
ارائه فهرستی از اجزای Vue
رندر لیست:
<template>
v-for="todo in todos" :key="todo.id">{{ todo.text }}
template>
<script>
export default {
data() {
return {
todos: []
}
}
}
script>
افزودن یک فرم جدید Todo: رویدادها، روشها و مدلهای Vue
رسیدگی به ورودی فرم:
<template>
template>
<script>
export default {
data() {
return {
newTodo: '',
todos: []
}
},
methods: {
addTodo() {
this.todos.push({ id: Date.now(), text: this.newTodo });
this.newTodo = '';
}
}
}
script>
استایل دادن به اجزای Vue با CSS
اضافه کردن سبک ها:
<template>
class="todo-list">
template>
<style>
.todo-list {
font-family: Arial, sans-serif;
}
style>
با استفاده از Vue Computed Properties
خواص محاسبه شده:
<script>
export default {
data() {
return {
todos: []
}
},
computed: {
todoCount() {
return this.todos.length;
}
}
}
script>
Vue Conditional Rendering: Editing Existing Todos
ویرایش همه:
Vue Refs و روشهای چرخه حیات برای مدیریت تمرکز
استفاده از Refs:
منابع Vue
شیک
شروع کار با Svelte
Svelte یک رویکرد جدید رادیکال برای ایجاد رابط کاربری است. بر خلاف چارچوب های سنتی، Svelte بیشتر کار را به زمان کامپایل تغییر می دهد.
نصب و راه اندازی:
npx degit sveltejs/template my-app
cd my-app
npm install
npm run dev
راه اندازی برنامه Svelte Todo List ما
ساختار پایه:
let todos = [];
Todo List
رفتار پویا در Svelte: کار با متغیرها و Props
اضافه کردن کارها:
Componentizing Svelte App
ایجاد کامپوننت:
export let todo;
{todo.text}
Svelte پیشرفته: واکنش پذیری، چرخه حیات، دسترسی
بیانیه های واکنشی:
let count = 0;
$: doubled = count * 2;
Count: {count}
D
oubled: {doubled}
کار با Svelte Stores
ایجاد فروشگاه:
// store.js
import { writable } from 'svelte/store';
export const todos = writable([]);
پشتیبانی TypeScript در Svelte
استفاده از TypeScript:
npx degit sveltejs/template my-app
cd my-app
node scripts/setupTypeScript.js
npm install
npm run dev
استقرار و مراحل بعدی
استقرار برنامه Svelte:
npm run build
منابع Svelte
زاویه ای
شروع کار با Angular
Angular پلتفرمی برای ساخت اپلیکیشن های وب موبایل و دسکتاپ است.
نصب و راه اندازی:
npm install -g @angular/cli
ng new my-app
cd my-app
ng serve
شروع برنامه Angular Todo List ما
ساختار پایه:
// app/app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `
`
})
export class AppComponent {}
استایل دادن به برنامه زاویهای ما
اضافه کردن سبک ها:
/* src/styles.css */
body {
font-family: Arial, sans-serif;
}
ایجاد کامپوننت آیتم
جزء مورد:
// app/todo-item/todo-item.component.ts
import { Component, Input } from '@angular/core';
@Component({
selector: 'app-todo-item',
template: `{{ todo.text }} `
})
export class TodoItemComponent {
@Input() todo;
}
فیلتر کردن موارد کاری ما
فیلتر کردن همه:
// app/app.component.ts
export class AppComponent {
todos = [];
filter = '';
get filteredTodos() {
return this.todos.filter(todo => todo.text.includes(this.filter));
}
}
ساخت اپلیکیشن های زاویه ای و منابع بیشتر
اپلیکیشن ساختمان:
ng build
منابع زاویه ای
نتیجه
چارچوب های سمت مشتری برای توسعه وب مدرن، ارائه ساختار و کارایی ضروری هستند. هر فریم ورک – React، Ember، Vue، Svelte و Angular- دارای نقاط قوت و ویژگی های منحصر به فرد خود است. با درک این چارچوب ها و مفاهیم اصلی آنها، توسعه دهندگان می توانند بهترین ابزار را برای پروژه های خود انتخاب کنند و برنامه های وب قوی و پویا بسازند.