ND.*_*tos 50 javascript jquery reactjs
我是ReactJS的新手.直到现在我正在使用JQuery来设置我需要的任何动画或某些功能.但现在我正在尝试使用ReactJS并使用JQuery进行最小化.
我的案例是:
我正在尝试建立自己的手风琴,使用JQuery我可以做到,但是使用ReactJS我不明白如何做到.
<div class="accor">
<div class="head">Head 1</div>
<div class="body hide">Body 1</div>
</div>
<div class="accor">
<div class="head">Head 1</div>
<div class="body hide">Body 1</div>
</div>
<div class="accor">
<div class="head">Head 1</div>
<div class="body hide">Body 1</div>
</div>
Run Code Online (Sandbox Code Playgroud)
使用JQuery:
$('.accor > .head').on('click', function(){
$('.accor > .body').slideUp();
$(this).next().slideDown();
});
Run Code Online (Sandbox Code Playgroud)
我的问题:
1.如何在ReactJS中做到这一点?
谢谢你
sol*_*... 92
是的,我们可以在ReactJs中使用jQuery.在这里,我将告诉我们如何使用npm来使用它.
步骤1:package.json
使用cd命令转到使用终端存在文件的项目文件夹.
步骤2:编写以下命令以使用npm安装jquery:npm install jquery --save
第3步:现在,$
从jquery
您需要使用的jsx文件导入.
例:
在index.jsx中写下面的内容
import React from 'react';
import ReactDOM from 'react-dom';
import $ from 'jquery';
// react code here
$("button").click(function(){
$.get("demo_test.asp", function(data, status){
alert("Data: " + data + "\nStatus: " + status);
});
});
// react code here
Run Code Online (Sandbox Code Playgroud)
在index.html中写下面的内容
<!DOCTYPE html>
<html>
<head>
<script src="index.jsx"></script>
<!-- other scripting files -->
</head>
<body>
<!-- other useful tags -->
<div id="div1">
<h2>Let jQuery AJAX Change This Text</h2>
</div>
<button>Get External Content</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
jzm*_*jzm 43
你应该尝试避免在ReactJS中使用jQuery.但是如果你真的想要使用它,你可以将它放在组件的componentDidMount()生命周期函数中.
例如
class App extends React.Component {
componentDidMount() {
// Jquery here $(...)...
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,您需要创建可重复使用的Accordion组件.为此你可以使用Jquery,或者只使用普通的javascript + CSS.
class Accordion extends React.Component {
constructor() {
super();
this._handleClick = this._handleClick.bind(this);
}
componentDidMount() {
this._handleClick();
}
_handleClick() {
const acc = this._acc.children;
for (let i = 0; i < acc.length; i++) {
let a = acc[i];
a.onclick = () => a.classList.toggle("active");
}
}
render() {
return (
<div
ref={a => this._acc = a}
onClick={this._handleClick}>
{this.props.children}
</div>
)
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以在任何组件中使用它,如下所示:
class App extends React.Component {
render() {
return (
<div>
<Accordion>
<div className="accor">
<div className="head">Head 1</div>
<div className="body"></div>
</div>
</Accordion>
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
Codepen链接:https://codepen.io/jzmmm/pen/JKLwEA?edit = 0110 (我将此链接更改为https ^)
Dav*_*oos 13
步骤1:
npm install jquery
Run Code Online (Sandbox Code Playgroud)
第2步:
touch loader.js
Run Code Online (Sandbox Code Playgroud)
项目文件夹中的某个位置
第三步:
//loader.js
window.$ = window.jQuery = require('jquery')
Run Code Online (Sandbox Code Playgroud)
第四步:
在导入需要jQuery的文件之前,将加载程序导入到您的根文件中
//App.js
import '<pathToYourLoader>/loader.js'
Run Code Online (Sandbox Code Playgroud)
步骤5:
现在在代码中的任何地方使用jQuery:
//SomeReact.js
class SomeClass extends React.Compontent {
...
handleClick = () => {
$('.accor > .head').on('click', function(){
$('.accor > .body').slideUp();
$(this).next().slideDown();
});
}
...
export default SomeClass
Run Code Online (Sandbox Code Playgroud)
小智 6
要安装它,只需运行命令
npm install jquery
Run Code Online (Sandbox Code Playgroud)
或者
yarn add jquery
Run Code Online (Sandbox Code Playgroud)
然后你可以将它导入到你的文件中
import $ from 'jquery';
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
139033 次 |
最近记录: |