Emotion + Create-React-App 実装メモ
Tweetインストール
Create-react-app を使っている場合は、babel-macro を使うしかないよう。(いまのところこれなら動く)
install
yarn add -D emotion # core ではないほうをつかう。
bable-macro の場合
import { css, keyframes, injectGlobal, flush, hydrate } from 'emotion/macro'
const style = css`
color: hotpink;
`
<div className={style}></div>
と思ったが以下でもきく @emotion/core
babel-plugin-emotion を使ったバージョンとどちらがいいのかは謎。一応 plugin をかました場合の方がパフォーマンス等はいいらしい。
@emotion/core
import { jsx, css } from '@emotion/core'
const style = css`
color: hotpink;
`
const Advertiser = ({ data, loading }) => {
const { advertiser } = data
if (loading) return <p>Loading...</p>
console.log(advertiser)
const { insertionOrders } = advertiser
return (
<div css={style}>
今のところの最適解
jsx は emotion core から。css だけ @emotion/css/macro' から。 最適化が一応なされ、sourceMap もつくので、JS の該当箇所に移動できる。
いまのところ
/** @jsx jsx */
import InsertionOrder from './InsertionOrder'
import { jsx, Grobal } from '@emotion/core'
import css from '@emotion/css/macro'
const style = css`
color: hotpink;
`
const Advertiser = ({ data, loading }) => {
const { advertiser } = data
if (loading) return <p>Loading...</p>
console.log(advertiser)
const { insertionOrders } = advertiser
return (
<div css={style}>