A Vim snippet library for React in ES6. You may also want to check out vim-es2015-snippets.
Requires UltiSnips.
Using vim-plug:
" ES2015 code snippets (Optional)
Plug 'epilande/vim-es2015-snippets'
" React code snippets
Plug 'epilande/vim-react-snippets'
" Ultisnips
Plug 'SirVer/ultisnips'
" Trigger configuration (Optional)
" let g:UltiSnipsExpandTrigger="<C-l>"In a JavaScript or JSX file, type a trigger name while in Insert mode, then press Ultisnips trigger key. In my case I have it mapped to <C-l>.
For example, let's say we have ListItem.js
In Insert mode
rfc<C-l>Will expand to
import React from 'react';
import PropTypes from 'prop-types';
import styles from './ListItem.css';
function ListItem({ ...props }) {
  return (
    <div className={styles.base}>
    </div>
  );
}
ListItem.defaultProps = {
};
ListItem.propTypes = {
};
export default ListItem;Check out UltiSnips/javascript.snippets to see all snippets.
| Trigger | Content | 
|---|---|
| rrcc→ | React Redux Class Component | 
| rcc→ | React Class Component | 
| rfc→ | React Functional Component | 
| rsc→ | React Styled Component | 
| rsci→ | React Styled Component Interpolation | 
| Trigger | Content | 
|---|---|
| cwm→ | componentWillMount() {...} | 
| cdm→ | componentDidMount() {...} | 
| cwrp→ | componentWillReceiveProps(nextProps) {...} | 
| scup→ | shouldComponentUpdate(nextProps, nextState) {...} | 
| cwup→ | componentWillUpdate(nextProps, nextState) {...} | 
| cdup→ | componentDidUpdate(prevProps, prevState) {...} | 
| cwu→ | componentWillUnmount() {...} | 
| ren→ | render() {...} | 
| Trigger | Content | 
|---|---|
| pt→ | propTypes {...} | 
| pt.a→ | PropTypes.array | 
| pt.b→ | PropTypes.bool | 
| pt.f→ | PropTypes.func | 
| pt.n→ | PropTypes.number | 
| pt.o→ | PropTypes.object | 
| pt.s→ | PropTypes.string | 
| pt.no→ | PropTypes.node | 
| pt.e→ | PropTypes.element | 
| pt.io→ | PropTypes.instanceOf | 
| pt.one→ | PropTypes.oneOf | 
| pt.onet→ | PropTypes.oneOfType (Union) | 
| pt.ao→ | PropTypes.arrayOf (Instances) | 
| pt.oo→ | PropTypes.objectOf | 
| pt.sh→ | PropTypes.shape | 
| ir→ | isRequired | 
| Trigger | Content | 
|---|---|
| props→ | this.props | 
| state→ | this.state | 
| set→ | this.setState(...) | 
| dp→ | defaultProps {...} | 
| cn→ | className | 
| ref→ | ref | 
| pp→ | ${props => props} | 
| Trigger | Content | 
|---|---|
| us.s→ | const [state, setState] = useState(''); | 
| us.e→ | useEffect(() => { }); | 
| us.er→ | useEffect(() => { return () => {}; }); | 
| us.c→ | const context = useContext(ctx); | 
| us.r→ | const [store, dispatch] = useReducer(storeReducer, initialState); | 
| us.cb→ | useCallback(() => {  }, []); | 
| us.m→ | const memo = useMemo(() => {  }, []); | 
