#jquery #reactjs #jquery-plugins #react-hooks #react-functional-component
#jquery #reactjs #jquery-плагины #реагирующие хуки #react-functional-component
Вопрос:
Я разрабатываю приложение, используя функциональный компонент React с помощью react hook. Я интегрирую jquery в свое приложение, следуя коду:
import React, {useEffect} from 'react'
import $ from 'jquery'
window.jquery = window.$ = $
function App(){
useEffect(() => {
if($){
$('#btn').click(e=>{
$('#txt').hide()
})
}
},[$])
return (
<button id='btn'>Click </button>
<p id='txt'>
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when
an unknown printer took a galley of type and scrambled it to make a type specimen
book.
</p>
)
Этот код отлично работает для меня. Но я не могу добавить какой-либо внешний плагин по своему выбору. Пожалуйста, дайте мне идею добавить плагин jquery в мое приложение. Я использовал команду create-react-app.
Комментарии:
1. В большинстве случаев вам не нужно использовать
jquery
с React. Вместо того, чтобы искать плагины jquery, ищите компонент React в мире с открытым исходным кодом. Вы, скорее всего, найдете некоторые.2. Для чего-то подобного вам не нужно использовать jQuery, вы должны использовать React. Для более сложных вещей, таких как использование плагинов jQuery, вам нужно использовать class component с componentDidMount, куда вы помещаете свой код jQuery. Я не очень хорошо знаком с крючками React, я не уверен, что вы можете использовать их вместо componentDidMount.
3. На самом деле это просто демонстрационный код, показывающий, как я интегрирую jquery в свое приложение react. А также моя команда очень хорошо разбирается в jquery. Итак, я хочу использовать jquery в приложении. А также мне не интересно использовать компоненты на основе классов.
4. Привет @TakiuddinAhmed, не удалось узнать, как использовать jQuery с функциональными компонентами? Я пытаюсь сделать то же самое. Я в основном пытаюсь интегрировать datatables.net в мое приложение React. Я могу конвертировать App.js в функциональный компонент, но испытывающий трудности с преобразованием моего Tbl.js компонент в функциональный компонент.
Ответ №1:
хуки @stminion001 позволяют нам достичь этой функциональности. Вы можете интегрировать datatables.net используя этот подход. Чтобы добавить пакет в зависимости: npm установите jquery datatables.net
import React, {useEffect, useRef} from 'react';
const $ = require('jquery');
$.DataTable = require('datatables.net');
const CustomDataTable = (props) => {
const myTable = useRef(null);
// componentDidMount
useEffect(() => {
// fill columns according to your data
$(myTable.current).DataTable({
data: props.data,
'columns': [
{title: 'first col'},
{title: 'second col'},
{title: 'third col'},
....
]
});
}, []);
useEffect(() => {
// componentWillUnmount
return () => {
$(myTable.current).DataTable().destroy();
}
}, []);
return (
<React.Fragment>
<table className='display' width='100%' ref={myTable}>
</table>
</React.Fragment>
)
}
export default CustomDataTable;