هذا المشروع هو دمج الأفكار الجيدة من Aphrodite و JSS. يوفر واجهة برمجة تطبيقات من أفروديت ولكنه يحدد الكثير من القيود والتحذيرات باستخدام JSS كمحرك عرض أسفل الغطاء.
css()
. يتم تحويل القواعد التي تم تمريرها فقط إلى سلسلة CSS وحقنها.css()
استدعاء استدعاء. يمنحك إمكانية الوصول إلى أنماط محسوبة مباشرة بعد العرض ، لا حاجة لاستخدام setTimeout()
. كما أنه يتجنب عمليات إعادة التثبيت والإعادة ، والتي يمكن أن تسبب وميضات الأداء العام. import { StyleSheet , css } from 'aphrodite-jss'
const sheet = StyleSheet . create ( {
button : {
border : '1px solid' ,
borderRadius : 5 ,
fontSize : 'inherit' ,
lineHeight : '2.3em' ,
padding : '0 1em' ,
boxShadow : 'inset 0 1px 0 rgba(255, 255, 255, 0.1)' ,
textShadow : '0 -1px 0 rgba(0, 0, 0, 0.25)' ,
backgroundRepeat : 'repeat-x' ,
color : '#fff' ,
fontWeight : 400 ,
'& span' : {
marginRight : 5 ,
color : '#fff'
}
} ,
primary : {
borderColor : '#1177cd #0f6ab6 #0d5c9e' ,
backgroundImage : 'linear-gradient(to bottom, #2591ed 0%, #1177cd 100%)' ,
backgroundColor : '#1385e5' ,
'&:hover' : {
backgroundImage : 'linear-gradient(to bottom, #3c9def 0%, #1385e5 100%)'
}
}
} )
document . body . innerHTML = `
<button class=" ${ css ( sheet . button , sheet . primary ) } ">
<span>✔</span>Primary
</button>
`
StyleSheet.create(styles)
إنشاء وظيفة لا تقدم أي شيء ، فهو يسجل أنماطك فقط.
إرجاع كائن ، حيث تتوافق أسماء المفاتيح مع الأنماط الأصلية obejct.
css(rule1, [rule2], [rule3], ...)
حقن قاعدة محددة مسبقا إلى DOM. يتم ذلك في المزامنة ، لذلك تتوفر قاعدة CSS على الفور.
إرجاع اسم الفصل.
يتم تعريف تنسيق الأنماط في JSS. يستخدم Aprodisiac JSS-Preset-Default ، وبالتالي فإن جميع الإعدادات المسبقة الافتراضية موجودة بالفعل.
aphroditeJss(jss, [options])
يمكنك تمرير مثيل JSS الخاص بك مع الإعداد المخصص الخاص بك.
إرجاع واجهة أفروديت.
import aphroditeJss from 'aphrodite-jss'
import { create } from 'jss'
const { css , StyleSheet } = aphroditeJss ( create ( ) )
هناك وظيفتان تحتاج إلى معرفته - toString()
و reset()
. نظرًا لأن Aphrodite-JSS لا يمكن أن تعرف أنك تقوم بتقديم استجابة جديدة ، فأنت بحاجة إلى الحصول على CSS ( toString()
) عند معالجة الطلب الأول وإعادة reset()
لتنظيف الأنماط التي أنتجتها صفحتك الحالية.
import { toString , reset } from 'aphrodite-jss'
function render ( ) {
const app = renderApp ( )
const css = toString ( )
reset ( )
return `
<head>
<style>
${ css }
</style>
<head>
<body>
${ app }
</body>
`
}
معهد ماساتشوستس للتكنولوجيا