Igor Suvorov
Программист-предприниматель
Занятие 6
25 Mar 2017
Профессия
Node.js & React.js developer
продвинутый курс
sprites
+ react
для чего они нужны?
1. Библиотека с иконками
2. Инструменты сборки иконок
3. В Prod грузятся только используемые иконки
какие вообще есть иконки
для чего они нужны?
как пользоваться
Вставляем код, не забываем сделать import
лайфхак для Cards
Bootstrap 4 card component, back-ported for Bootstrap 3, SASS
github.com/martinbean/bootstrap-3-card
npmjs.com/package/bootstrap-3-card
Reactstrap Card components
import { wrap } from 'react-bootstrap-card';
wrap(require('react-bootstrap'));
////
import {
Grid,
Row,
Col,
Button,
Card,
CardBlock,
CardFooter,
} from 'react-bootstrap';
react-copy-to-clipboard
react-responsive
<!-- >= IE6 * -->
<MediaQuery query='(min-device-width: 1224px)'>
<div>You are a desktop or laptop</div>
<MediaQuery query='(min-device-width: 1824px)'>
<div>You also have a huge screen</div>
</MediaQuery>
<MediaQuery query='(max-width: 1224px)'>
<div>You are sized like a tablet or mobile phone though</div>
</MediaQuery>
</MediaQuery>
react-google-maps
// Under development for v6.0.0
<GoogleMap
ref={props.onMapLoad}
defaultZoom={3}
defaultCenter={{ lat: -25.363882, lng: 131.044922 }}
onClick={props.onMapClick}
>
{props.markers.map((marker, index) => (
<Marker
{...marker}
onRightClick={() => props.onMarkerRightClick(index)}
/>
))}
</GoogleMap>
var settings = {
dots: true,
infinite: true,
speed: 500,
slidesToShow: 1,
slidesToScroll: 1
};
return (
<Slider {...settings}>
<div><h3>1</h3></div>
<div><h3>2</h3></div>
<div><h3>3</h3></div>
<div><h3>4</h3></div>
<div><h3>5</h3></div>
<div><h3>6</h3></div>
</Slider>
);
<ReactStars
count={5},
onChange={ratingChanged},
size={24},
color2={'#ffd700'} />
<Lightbox
images={[{ src: 'http://example.com/img1.jpg' }, { src: 'http://example.com/img2.jpg' }]}
isOpen={this.state.lightboxIsOpen}
onClickPrev={this.gotoPrevious}
onClickNext={this.gotoNext}
onClose={this.closeLightbox}
/>
<VisibilitySensor onChange={onChange} />
<TrackVisibility>
<ComponentToTrack />
</TrackVisibility>
<Img
src="my-image.png"
fallbackImage="my-backup.png"
initialImage="loader.gif"
alt="cool image should be here"
className="my-image" />
react-cookie
GET /spec.html HTTP/1.1
Host: www.example.org
Cookie: theme=light; sessionToken=abc123
HTTP/1.0 200 OK
Content-type: text/html
Set-Cookie: theme=light
Set-Cookie: sessionToken=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT
export default class MyApp {
onLogin(userId) {
cookie.save('userId', userId, { path: '/' });
}
onLogout() {
cookie.remove('userId', { path: '/' });
}
}
semver
semver
semver
semver
#npm run build
rm -rf dist &&
mkdir dist &&
cp {package.json,yarn.lock,README.md} dist/ &&
babel src --out-dir dist --source-maps inline --copy-files
cd lsk-example2
yarn install
yarn run dev
yarn link lsk-general
# hot reload
yarn add lsk-general@1.2.3
cd lsk-general
yarn link
yarn run dev
# fix bug + save
# hot reload
# package.json version++ (1.2.3)
yarn run release
for libs
any questions?
программист-предприниматель
By Igor Suvorov
* template