javascript – ReactJs重复使用相同的组件但具有不同的样式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – ReactJs重复使用相同的组件但具有不同的样式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2328字,纯文字阅读大概需要4分钟。
内容图文
我有一个我希望在reactJs中重复使用的按钮组件,我想要渲染多个相同的组件,但是使用不同的样式并在按下按钮时使用不同的样式以及鼠标HoverOver
按钮组件是: –
import React, { Component } from 'react';
//import './Buttons.css'
const buttons = (props) => {
return (
<div className="">
<button id="buttons" class="-"> {props.name}</button>
</div>
);
}
export default buttons;
主应用程序组件保持一个状态,然后状态显示Button的名称,我相信有更好的方法来执行此操作.
此外,我已经制作了多个按钮组件,我可以用这种方式应用css样式,但我确信这不是正确的方法.
class App extends Component {
state = {
name: [
{ button: 'Login' },
{ buttonTwo: 'Sign Up' },
{ buttons: 'Login' }
],
}
render() {
const style = {
backgroundColor: 'blue',
font: 'inherit',
border: '1px solid red',
padding: '8px',
};
var pressed = true
function toggle() {
pressed = !pressed
//When pressed Styles change
}
return (
<div className="App">
{/* <Right /> Temp Disabled*/}
<span><Button pressed={pressed} defaultPressed={true} pressedStyle={{color: 'blue'}}
name={this.state.name[0].button} /></span>
<span><Button name={this.state.name[1].buttonTwo} /></span>
</div>
);
}
}
export default App;
我最终的目标是创建一个登录部分,以便这些按钮成为其中的一部分.
解决方法:
为什么不使用CSS并使用native:active和:hover伪类来处理你的“鼠标HoverOver”和“按下按钮”?如果你的样式将在CSS中,那么你可以只传递一些字符串作为参数(例如className)并简单地在.css文件中定义必要的样式
例如
class Application extends React.Component {
render() {
return (
<div className="application-wrapper">
<Button className="red">This is the red button</Button>
<Button className="blue">This is the blue button</Button>
</div>
)
}
}
class Button extends React.Component {
render() {
return (
<button className={`my-awesome-button ${this.props.className}`}>{this.props.children}</button>
)
}
}
ReactDOM.render(<Application />, document.getElementById("kappa"))
.my-awesome-button {
line-height: 40px;
padding: 0 20px;
border: none;
background: black;
color: white;
font-weight: bold;
cursor: pointer;
outline: none;
}
.my-awesome-button:hover {
opacity: .54
}
.my-awesome-button:active {
opacity: .38
}
.my-awesome-button.red {
background: red
}
.my-awesome-button.blue {
background: blue
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="kappa"></div>
内容总结
以上是互联网集市为您收集整理的javascript – ReactJs重复使用相同的组件但具有不同的样式全部内容,希望文章能够帮你解决javascript – ReactJs重复使用相同的组件但具有不同的样式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。