{"componentChunkName":"component---src-templates-post-template-js","path":"/posts/7","result":{"data":{"markdownRemark":{"id":"ab9e1f5d-ae06-5d55-8f33-da9d4f6e8d50","html":"<h3 id=\"material-uicorestyles-사용해서-exportimport-global-style\"><a href=\"#material-uicorestyles-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%84%9C-exportimport-global-style\" aria-label=\"material uicorestyles 사용해서 exportimport global style permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>@material-ui/core/styles 사용해서 export/import global style</h3>\n<p>styled 사용 중 에러가 발생했다.\nerror code는 <code class=\"language-text\">Property &#39;styledButton&#39; does not exist on type &#39;JSX.IntrinsicElements&#39;.</code></p>\n<p>온갖 방법을 찾아보았지만 해결되지 않고 있었다. 그러던 중 <code class=\"language-text\">styledButton</code>을 <code class=\"language-text\">StyledButton</code>으로 바꾸니 작동하기…시작…\n아 이래서 뭐든지 기초가 중요한 것이다.. JSX에 대한 기초가 없어 이런 데서 막히다니..</p>\n<blockquote>\n<p>주의: 컴포넌트의 이름은 항상 대문자로 시작합니다. React는 소문자로 시작하는 컴포넌트를 DOM 태그로 처리합니다.\n예를 들어 <code class=\"language-text\">&lt;div /&gt;</code>는 HTML div 태그를 나타내지만, <code class=\"language-text\">&lt;Welcome /&gt;</code>은 컴포넌트를 나타내며 범위 안에 Welcome이 있어야 합니다.</p>\n</blockquote>\n<p>참고 : <a href=\"https://ko.reactjs.org/docs/jsx-in-depth.html#user-defined-components-must-be-capitalized\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://ko.reactjs.org/docs/jsx-in-depth.html#user-defined-components-must-be-capitalized</a></p>\n<div class=\"gatsby-highlight\" data-language=\"ts\"><pre class=\"language-ts\"><code class=\"language-ts\"><span class=\"token comment\">// styled.tsx 에 여러 컴포넌트에서 사용할 스타일 정의하기</span>\n<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> styled <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">'@material-ui/core/styles'</span>\n<span class=\"token keyword\">import</span> Button <span class=\"token keyword\">from</span> <span class=\"token string\">'@material-ui/core/Button'</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> StyledButton <span class=\"token operator\">=</span> <span class=\"token function\">styled</span><span class=\"token punctuation\">(</span>Button<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n  width<span class=\"token punctuation\">:</span> <span class=\"token string\">'100%'</span><span class=\"token punctuation\">,</span>\n  cursor<span class=\"token punctuation\">:</span> <span class=\"token string\">'pointer'</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n<span class=\"token comment\">//////////////////////////////////////////////////</span>\n<span class=\"token comment\">// otherFile.tsx 에서 styled.tsx에 정의한 StyledButton import 해서 사용하기</span>\n<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> StyledButton <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">'./styled'</span>\n\n<span class=\"token operator\">&lt;</span>StyledButton<span class=\"token operator\">></span>선택하기<span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>StyledButton<span class=\"token operator\">></span></code></pre></div>\n<h2 id=\"material-ui-문법\"><a href=\"#material-ui-%EB%AC%B8%EB%B2%95\" aria-label=\"material ui 문법 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Material UI 문법</h2>\n<div class=\"gatsby-highlight\" data-language=\"ts\"><pre class=\"language-ts\"><code class=\"language-ts\"><span class=\"token comment\">// 1. Styled components API - styled</span>\n<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> styled <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">'@material-ui/core/styles'</span>\n\n<span class=\"token keyword\">const</span> Notice <span class=\"token operator\">=</span> <span class=\"token function\">styled</span><span class=\"token punctuation\">(</span><span class=\"token string\">'div'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n  backgroundColor<span class=\"token punctuation\">:</span> <span class=\"token string\">'#f5f5f5'</span><span class=\"token punctuation\">,</span>\n  <span class=\"token string\">'.header'</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n    padding<span class=\"token punctuation\">:</span> <span class=\"token string\">'14px 10px 10px'</span><span class=\"token punctuation\">,</span>\n    lineHeight<span class=\"token punctuation\">:</span> <span class=\"token number\">1.29</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token string\">'.header strong'</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n    display<span class=\"token punctuation\">:</span> <span class=\"token string\">'block'</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token keyword\">function</span> <span class=\"token function\">StyledComponents</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> <span class=\"token operator\">&lt;</span>Notice<span class=\"token operator\">></span>Styled Components<span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Notice<span class=\"token operator\">></span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token comment\">//////////////////////////////////////////////////</span>\n\n<span class=\"token comment\">// 2. Hook API - makeStyles</span>\n<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> makeStyles <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">'@material-ui/core/styles'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">import</span> Button <span class=\"token keyword\">from</span> <span class=\"token string\">'@material-ui/core/Button'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">const</span> useStyles <span class=\"token operator\">=</span> <span class=\"token function\">makeStyles</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n  root<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n    background<span class=\"token punctuation\">:</span> <span class=\"token string\">'linear-gradient(45deg, #FE6B8B 30%, #FF8E53 90%)'</span><span class=\"token punctuation\">,</span>\n    border<span class=\"token punctuation\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token keyword\">function</span> <span class=\"token function\">Hook</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">const</span> classes <span class=\"token operator\">=</span> <span class=\"token function\">useStyles</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">return</span> <span class=\"token operator\">&lt;</span>Button className<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>classes<span class=\"token punctuation\">.</span>root<span class=\"token punctuation\">}</span><span class=\"token operator\">></span>Hook<span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Button<span class=\"token operator\">></span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>참고 : <a href=\"https://material-ui.com/styles/basics/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://material-ui.com/styles/basics/</a></p>","fields":{"slug":"/posts/7","tagSlugs":null},"frontmatter":{"date":"2019-11-18","description":"","tags":null,"title":"Material UI 적응기"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"slug":"/posts/7"}}}