Библиотека компонентов JavaScript от Instacart
Обратите внимание: мы все еще находимся в предварительной релизе. Если вы решите использовать закуски, будьте готовы к нарушению изменений в будущем.
Вы можете использовать yarn или npm для установки закусок и ее зависимостей.
yarn add ' ic-snacks 'npm install ' ic-snacks 'Закуски имеют несколько зависимостей со сверстниками, необходимых для использования библиотеки.
Если у вас уже есть эти библиотеки, перечисленные в зависимости вашего приложения, нет необходимости устанавливать их снова.
Для основной библиотеки компонентов:
Если вы хотите использовать анимацию: Greact-Transing-Group v2.2
Иногда может быть полезно работать над этим проектом локально и просмотреть изменения в другом приложении. Это может быть достигнуто с помощью ссылки NPM
# From this directory
npm link
# go to the app you are working on
cd ../workspace/my_working_app
# symlink this app
npm link ic-snacksЧтобы изменить процесс, вы можете сделать следующее
# go to the app you are working on
cd ../workspace/my_working_app
# remove symlink
npm unlink ic-snacksyarn add @instacart/radium
yarn add prop-types
yarn add react
yarn add react-dom
yarn add react-transition-groupnpm install @instacart/radium
npm install prop-types
npm install react
npm install react-dom
npm install react-transition-groupИспользуя компонент:
import { CircleButton } from 'ic-snacks'
const MyComponent = props => {
const doYes = e => { alert ( 'Snacks are the best!' ) }
const doNo = e => { alert ( 'Wrong choice, choose again.' ) }
return (
< div >
< p > Do you love snacks? </ p >
< CircleButton onClick = { doYes } > Yes </ CircleButton >
< CircleButton onClick = { doNo } > No </ CircleButton >
</ div >
)
}Более сложный компонент:
import React , { Component } from 'react'
import { NavigationPills } from 'ic-snacks'
const choices = [
{ text : 'bananas' } ,
{ text : 'carrots' } ,
{ text : 'watermelon' } ,
{ text : 'snacks' } ,
{ text : 'kale' } ,
{ text : 'endives' } ,
{ text : 'arugula' } ,
{ text : 'spinach' } ,
{ text : 'potatoes' }
]
class Navigation extends Component {
static state = {
activePill : choices [ 0 ]
}
render ( ) {
return (
< div >
< NavigationPills
pills = { choices }
onPillClick = { ( e , choice ) => {
e . preventDefault ( ) ;
setState ( { activePill : choice . text } )
console . log ( 'Choice clicked!' , choice )
} }
label = 'Favorite healthy snack:'
activePill = { state . activePill }
/>
</ div >
)
}
} https://instacart.github.io/snacks/
См. Документы, выступающие