Для занесения списка фильмов в MobX вам понадобится несколько шагов. MobX - это JavaScript-библиотека для управления состоянием приложения, которая позволяет создавать реактивные данные.
1. Установите MobX:
Выполните команду npm install mobx mobx-react
в командной строке вашего проекта. Эта команда установит MobX и его интеграцию с React.
2. Создайте хранилище данных:
Вам потребуется создать хранилище данных, которое будет содержать список фильмов. Создайте новый файл с расширением .js (например, store.js) и импортируйте MobX:
import { observable, action } from 'mobx'; class MovieStore { @observable movies = []; @action addMovie(movie) { this.movies.push(movie); } } const store = new MovieStore(); export default store;
В приведенном выше примере создается класс MovieStore
, который содержит movies
- наблюдаемое свойство класса. @observable
используется для объявления, что это свойство будет реактивным. Метод addMovie
добавляет новый фильм в список.
3. Подключите хранилище к компоненту:
В компоненте, где вы хотите отобразить список фильмов, импортируйте хранилище данных и используйте его:
import React from 'react'; import { observer } from 'mobx-react'; import movieStore from './store'; const MovieList = observer(() => { const { movies } = movieStore; return ( <ul> {movies.map(movie => ( <li key={movie.id}>{movie.title}</li> ))} </ul> ); }); export default MovieList;
В приведенном выше примере observer()
используется для создания реактивного компонента, что позволяет компоненту автоматически перерендериться при изменении данных в хранилище. Затем мы получаем список фильмов из хранилища данных movieStore
с помощью деструктуризации и отображаем его внутри компонента.
4. Добавление фильма в список:
Чтобы добавить фильм в список, вам нужно получить доступ к хранилищу данных и вызвать метод addMovie
:
import React, { useState } from 'react'; import movieStore from './store'; const AddMovieForm = () => { const [title, setTitle] = useState(''); const handleSubmit = (e) => { e.preventDefault(); movieStore.addMovie({ id: Math.random(), title }); setTitle(''); }; return ( <form onSubmit={handleSubmit}> <input type="text" value={title} onChange={e => setTitle(e.target.value)} placeholder="Enter movie title" /> <button type="submit">Add Movie</button> </form> ); }; export default AddMovieForm;
В приведенном выше примере мы используем хук useState для управления значением введенного пользователем заголовка фильма. Обработчик handleSubmit вызывает метод addMovie хранилища данных, передавая новый фильм с уникальным идентификатором.
Теперь у вас должна быть базовая реализация, позволяющая занести список фильмов в MobX. Вы можете дальше настраивать и расширять функциональность в соответствии с вашими требованиями. MobX также предоставляет возможность реагировать на изменение данных, выполнять асинхронные операции и многое другое.