코드 절약 방법 - React Mixin
3938 단어 react
Mixin은 일부 방법을 정의하는 데 사용됩니다. 이 Mixin의 구성 요소를 사용하면 이러한 방법을 자유롭게 사용할 수 있습니다. (구성 요소에서 정의한 것처럼) 그래서 Mixin은 구성 요소의 확장에 해당하고, Mixin에서도 '생명주기' 방법을 정의할 수 있습니다.
var DefaultNameMixin = {
getDefaultProps: function () {
return {
name: "Skippy",
food: "Pancakes"
};
}
};
var ComponentOne = React.createClass({
mixins: [DefaultNameMixin],
render: function () {
return (
<div>
<h4>{this.props.name}</h4>
<p>Favorite food: {this.props.food}</p>
</div>
) ;
}
});
ReactDOM.render(<ComponentOne/>, document.body);
Mixin이 정의한 일부 기능은 모두 공유할 수 있으며, 만약 우리가 같은 상태와 속성을 사용할 때 오류를 보고할 수 있습니다.
var DefaultNameMixin = {
getDefaultProps: function () {
return {name: "Skippy"};
}
};
var ComponentTwo = React.createClass({
mixins: [DefaultNameMixin],
getDefaultProps: function () {
return {
food: "Pancakes",
name: "Lizy"
};
},
render: function () {
return (
<div>
<h4>{this.props.name}</h4>
<p>Favorite food: {this.props.food}</p>
</div>
);
}
});
ReactDOM.render(<ComponentTwo/>, document.body);
console.log:
Uncaught Error: Invariant Violation: mergeObjectsWithNoDuplicateKeys():
Tried to merge two objects with the same key: name
우리의component와mixin이 모두 생명주기 방법을 함유하고 있을 때, 우리의mixin방법은 시종 먼저 실행될 것이다.
var LogOnMountMixin = {
componentDidMount: function () {
console.log("mixin mount method");
}
};
var ComponentOne = React.createClass({
mixins: [LogOnMountMixin],
componentDidMount: function () {
mixin mount method
component one mount method
console.log("component one mount method"); }, render: function() { return <h2>Hello {this.props.name}</h2>; } }); ReactDOM.render(<ComponentOne/>, document.body);
console.log:
mixin mount method
component one mount method
우리include가 여러 믹스를 가지고 있을 때, 그들은 왼쪽에서 오른쪽으로 실행할 것이다.
var LogOnMountMixin = {
componentDidMount: function () {
console.log("mixin mount method");
}
};
var MoreLogOnMountMixin = {
componentDidMount: function () {
console.log("another mixin mount method");
}
};
var ComponentOne = React.createClass({
mixins: [MoreLogOnMountMixin, LogOnMountMixin],
componentDidMount: function () {
console.log("component one mount method");
},
...
var ComponentTwo = React.createClass({
mixins: [LogOnMountMixin, MoreLogOnMountMixin],
componentDidMount: function () {
console.log("component two mount method");
},
console.log:
another mixin mount method
mixin mount method
component one mount method
mixin mount method
another mixin mount method
component two mount method
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
NextJS에서 환경 변수(.env) 설정내 환경 변수가 작동하지 않습니다 😱😱😱 이 상황에서 .env 파일을 사용하여 NextJS 앱에서 개발하는 동안 API URL 또는 비밀 키를 숨기고 싶을 수 있습니다. Next.js에서 환경 변수를 어떻게 사용합니...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.