<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های مهدی نامور</title><link>https://virgool.ir/feed/@ilxanlar</link><description>برنامه‌نویس جاوااسکریپت و عاشق ری‌اکت، در حال حاضر در Today&#39;s Crypto کار میکنم!</description><language>fa</language><pubDate>2026-11-11 18:16:09</pubDate><image><url>https://files.virgool.ir/upload/users/2248/avatar/RFGTw5.png</url><title>مهدی نامور</title><link>https://virgool.ir/@ilxanlar</link></image><item><title>آشنایی با styled-components</title><link>https://virgool.ir/JavaScript8/what-are-styled-components-jyxe2piklax6</link><description>فرض کنید همه‌ی style های موردنیاز برای یک کامپوننت داخل خود آن تعریف شده باشد، به‌به!import React from &#39;react&#39;;&#xA;import ReactDOM from &#39;react-dom&#39;;&#xA;import styled from &#39;styled-components&#39;;&#xA;&#xA;const Button = styled.button`&#xA;    background-color: #00BFFF;&#xA;    border: 1px solid transparent;&#xA;    color: #FFF;&#xA;    font-size: 16px;&#xA;    padding: 10px 15px;&#xA;`;&#xA;&#xA;ReactDOM.render(&#xA;    &lt;Button&gt;Submit&lt;/Button&gt;,&#xA;    document.getElementById(&#39;root&#39;)&#xA;);توجه کنید که style باید داخل Template literals تعریف شود ` `دیگر نیازی نیست نگران className ها باشید، البته این بدین معنا نیست که نمی‌توانید از className استفاده کنید:&lt;Button className=&#34;submit-button&#34;&gt;&#xA;    Submit&#xA;&lt;/Button&gt;مهم‌تر اینکه شما این style ها را با جاوااسکریپت می‌نویسید:import styled from &#39;styled-components&#39;; &#xA;&#xA;const backgroundColor = &#39;#00BFFF&#39;;&#xA;&#xA;const Button = styled.button`&#xA;    background-color: ${backgroundColor};&#xA;    border: 1px solid transparent;&#xA;    color: #FFF;&#xA;    font-size: 16px;&#xA;    padding: 10px 15px;&#xA;`;وقتی حرف از کامپوننت می‌شود نام prop به میان می‌آید. در مثال بالا، backgroundColor می‌تواند یک function باشد که prop های کامپوننت Button را به عنوان پارامتر ورودی دریافت می‌کند:import PropTypes from &#39;prop-types&#39;;&#xA;import styled from &#39;styled-components&#39;;&#xA;&#xA;function backgroundColor(props) {&#xA;    if (props.primary) {&#xA;        return &#39;#00BFFF&#39;;&#xA;    } else {&#xA;        return &#39;#353535&#39;;&#xA;    }&#xA;}&#xA;&#xA;const Button = styled.button`&#xA;    background-color: ${backgroundColor};&#xA;    border: 1px solid transparent;&#xA;    color: #FFF;&#xA;    font-size: 16px;&#xA;    padding: 10px 15px;&#xA;`;&#xA;&#xA;Button.propTypes = {&#xA;    primary: PropTypes.bool&#xA;};&#xA;&#xA;ReactDOM.render(&#xA;    &lt;div&gt;&#xA;        &lt;Button primary&gt;Submit&lt;/Button&gt;&#xA;        &lt;Button&gt;Cancel&lt;/Button&gt;&#xA;    &lt;/div&gt;,&#xA;    document.getElementById(&#39;root&#39;)&#xA;);برای کامپوننت‌های تودرتو می‌توانید style های خود را مثل SCSS بنویسید:const Button = styled.button`...`;&#xA;&#xA;const Wrapper = styled.div`&#xA;    margin: auto 20px;&#xA;    max-width: 600px;&#xA;&#xA;    ${Button} {&#xA;        display: inline-block;&#xA;        width: 100%;&#xA;    }&#xA;`;&#xA;&#xA;ReactDOM.render(&#xA;    &lt;Wrapper&gt;&#xA;        &lt;Button&gt;&#xA;            Create my Account&#xA;        &lt;/Button&gt;&#xA;    &lt;/Wrapper&gt;,&#xA;    document.getElementById(&#39;root&#39;)&#xA;);هم‌چنین می‌توانید styled-components را extend کنید:import React from &#39;react&#39;;&#xA;import styled from &#39;styled-components&#39;;&#xA;&#xA;const DefaultButton = styled.button`&#xA;    background-color: #353535;&#xA;    border: 1px solid transparent;&#xA;    color: #FFF;&#xA;    font-size: 16px;&#xA;    padding: 10px 15px;&#xA;`;&#xA;&#xA;const PrimaryButton = DefaultButton.extend`&#xA;    background-color: #00BFFF;&#xA;`;بسیاری از ویژگی‌های styled-components ناگفته باقی ماند ولی در نوشته‌های بعدی درباره آنها صحبت خواهیم کرد.</description><category>مهدی نامور</category><author>مهدی نامور</author><pubDate>Wed, 10 Jan 2018 01:00:21 +0330</pubDate></item></channel></rss>