どのように反応してフィルタリングポートフォリオを作成します.js
18176 ワード
過去には、Webアプリケーションを制御するのは簡単ではなかった、単純な機能をしたい場合は、多くのコードが必要でしたが、今の技術の進歩では、これらの機能を簡単になっている.
それで、私は、反応を使用しているカテゴリーによって濾過可能なポートフォリオを作る最も簡単な方法で、今日来ています.js
まず、インストールする必要があります
次のステップは、
すべてのポートフォリオアイテムを含む ポートフォリオ:ポートフォリオの現在の状態を含む カテゴリー:我々のカテゴリーを含みます SelectedCategory :選択したカテゴリを含む
あなたは私の上に従うことができます.Behance , Dribbble , GitHub
それで、私は、反応を使用しているカテゴリーによって濾過可能なポートフォリオを作る最も簡単な方法で、今日来ています.js
まず、インストールする必要があります
create-react-app
npx create-react-app my-app
cd my-app
npm start
これで反応アプリを作成しました:)次のステップは、
portfolio.js
インsrc/portfolio/portfolio.js
で設定し、App.js
ファイルimport React from 'react';
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
import Portfolio from "./pages/Portfolio/Portfolio";
function App() {
return (
<div className="Main">
<Router>
<Switch>
<Route path="/portfolio" exact component={Portfolio} />
</Switch>
</Router>
</div>
);
}
export default App;
今、私たちは空のファイルをportfolio.js
コンポーネントの作成import React, { Component } from "react";
class Portfolio extends Component {
render() {
return (
<div>Portfolio Page</div>
)
}
}
export default Portfolio;
我々はポートフォリオを制御するために国家を創設する必要があるimport React, { Component } from "react";
class Portfolio extends Component {
state = {
getAllPortfolio: [
{
id: 1,
name: "Project 1",
category: "Devices"
},
{
id: 2,
name: "Project 2",
category: "Accessories"
},
{
id: 3,
name: "Project 3",
category: "Devices"
},
{
id: 4,
name: "Project 4",
category: "Tools"
},
{
id: 5,
name: "Project 5",
category: "Fruits"
},
],
portfolio: [],
categories: ["All", "Devices", "Accessories", "Tools", "Fruits", "Shoes"],
selectedCategory: "All",
};
render() {
return (
<div>Portfolio Page</div>
)
}
}
export default Portfolio;
今、我々はこれらの状態を一緒に作業し、行動を実行する時、我々は機能を書く予定ですfilterItems()
filterItems = (e, category) => {
e.preventDefault();
if (category === "All") {
this.setState({
selectedCategory: category,
portfolio: this.state.getAllPortfolio,
});
} else {
this.setState({
selectedCategory: category,
portfolio: this.state.getAllPortfolio.filter(
(item) => item.category === category
),
});
}
};
では、私たちの要素をDOMにrender() {
const portfolioItems = this.state.portfolio.map((item) => (
<div className="work" key={item.id}>
<h3>{item.name}</h3>
<span>{item.category}</span>
</div>
));
const categoriesList = this.state.categories.map((cat) => (
<a
href="#"
className={cat === this.state.selectedCat ? "active" : ""}
onClick={(e) => this.filterItems(e, cat)}
>
{cat}
</a>
));
return (
<div className="Portfolio">
<div className="all-content">
<section>
<h3>Portfolio</h3>
<div className="categories">{categoriesList}</div>
</section>
<div className="works">
<div className="row">{portfolioItems}</div>
</div>
</div>
</div>
);
}
閉じるこの動画はお気に入りから削除されていますあなたは私の上に従うことができます.Behance , Dribbble , GitHub
Reference
この問題について(どのように反応してフィルタリングポートフォリオを作成します.js), 我々は、より多くの情報をここで見つけました https://dev.to/ammarbasuony/how-to-make-filterable-portfolio-with-reactjs-1p27テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol