Теперь, когда мы запустили наше браузерное расширение с помощью Tailwind CSS и Parcel, давайте посмотрим, как сделать его более интерактивным.
Вы можете выбрать любой фреймворк, с которым вы знакомы. Я решил использовать React.
Идея заключается в том, чтобы добавить React для создания интерактивного расширения браузера новой вкладки.
Примечание: если вы хотите следить за развитием событий, используйте следующую ветку GitHub.
Установка зависимостей
Во-первых, мы должны сообщить нашему проекту, что планируем использовать React, поэтому давайте установим необходимые зависимости.
npm i react react-dom
Затем вы можете продолжить и создать папку src
. Она станет центральным местом нашего приложения React.
Настройка React
Теперь, когда у нас все установлено, остались только эти два пункта 🤯.
Мы можем приступить к рендерингу приложения React.
Откройте страницу new-tab.html
. До сих пор это был исходник нашего приложения, но давайте удалим HTML и поместим это внутрь.
<body>
<div id="app"></div>
<script type="module" src="index.js"></script>
</body>
Это станет нашей точкой инъекции, куда мы можем внедрить React.
Мы также добавили скрипт, который будет обрабатывать инъекцию React.
Создайте этот файл index.js
.
import ReactDOM from 'react-dom';
import { App } from './src/App';
const app = document.getElementById('app');
ReactDOM.render(<App />, app);
Теперь мы можем перейти к созданию компонента App
.
Добавьте файл App.js
в каталог src
и поместите в него следующее содержимое.
export function App() {
return (
<div className='flex flex-col items-center justify-center w-screen h-screen bg-indigo-400 text-6xl font-bold text-white'>
<p>Welcome 👋</p>
</div>
);
}
Это отобразит то, что мы уже имели вначале.
Давайте сделаем его более интерактивным, создав компонент Counter.js
.
import { useState } from 'react';
export default function Counter() {
const [counter, setCounter] = useState(0);
const increase = () => setCounter((count) => count + 1);
const decrease = () => setCounter((count) => count - 1);
return (
<div>
<button onClick={decrease}>-</button>
<span className='px-4'>{counter}</span>
<button onClick={increase}>+</button>
</div>
);
}
Теперь вернитесь к компоненту App.js
и импортируйте счетчик.
import Counter from './Counter';
export function App() {
return (
<div className='flex flex-col items-center justify-center w-screen h-screen bg-indigo-400 text-6xl font-bold text-white'>
<p>Welcome 👋</p>
<br />
<Counter />
</div>
);
}
Теперь, если вы запустите команду watch или build, вы должны иметь возможность использовать ваше новое браузерное расширение на базе React.
npm run build
Примечание: убедитесь, что при загрузке расширения используется папка
dist
.
Код этой статьи вы можете найти на GitHub.
Спасибо, что прочитали, и давайте подключаться!
Спасибо, что читаете мой блог. Не стесняйтесь подписываться на мою рассылку по электронной почте и подключайтесь к Facebook или Twitter.