     });
     """
 
-  # Gulp
-  'Gulp Task':
-    'prefix': 'task'
-    'body': """
-    gulp.task('${1}', [${2}], function () {
-      ${3}
-    });
-    """
-
   # React
-  'React: componentDidMount: fn() { ... }':
+  'React: component':
+    'prefix' : 'rcm'
+    'body' : """
+    class ${1} extends React.Component {
+      constructor () {
+        super();
+      }
+
+      render () {
+        ${2}
+      }
+    }
+    """
+
+  'React: export default component':
+    'prefix' : 'expdrcm'
+    'body' : """
+    export default class ${1} extends React.Component {
+      constructor () {
+        super();
+      }
+
+      render () {
+        ${2}
+      }
+    }
+    """
+
+  'React: componentDidMount () { ... }':
     'prefix' : 'cdm'
     'body' : """
-    componentDidMount : function () {
-      ${1}
-    }
-    """
-
-  'React: componentDidUpdate: fn(pp, ps) { ... }':
+    componentDidMount () {
+      ${1}
+    }
+    """
+
+  'React: componentDidUpdate (pp, ps) { ... }':
     'prefix': 'cdup'
     'body': """
-    componentDidUpdate : function (prevProps, prevState) {
-      ${1}
-    }
-    """
-
-  'React: componentWillMount: fn() { ... }':
+    componentDidUpdate (prevProps, prevState) {
+      ${1}
+    }
+    """
+
+  'React: componentWillMount () { ... }':
     'prefix': 'cwm'
     'body': """
-    componentWillMount : function () {
-      ${1}
-    }
-    """
-
-  'React: componentWillReceiveProps: fn(np) { ... }':
+    componentWillMount () {
+      ${1}
+    }
+    """
+
+  'React: componentWillReceiveProps (np) { ... }':
     'prefix': 'cwr'
     'body': """
-    componentWillReceiveProps : function (nextProps) {
-      ${1}
-    }
-    """
-
-  'React: componentWillUnmount: fn() { ... }':
+    componentWillReceiveProps (nextProps) {
+      ${1}
+    }
+    """
+
+  'React: componentWillUnmount () { ... }':
     'prefix': 'cwun'
     'body': """
-    componentWillUnmount : function() {
-      ${1}
-    }
-    """
-
-  'React: componentWillUpdate: fn(np, ns) { ... }':
+    componentWillUnmount () {
+      ${1}
+    }
+    """
+
+  'React: componentWillUpdate (np, ns) { ... }':
     'prefix': 'cwu'
     'body': """
-    componentWillUpdate : function (nextProps, nextState) {
-      ${1}
-    }
-    """
-
-  'React: cx({ ... })':
-    'prefix': 'cx'
-    'body': """
-    cx({
-      $1 : $2
-    });
-    """
-
-  'React: forceUpdate(...)':
-    'prefix': 'fup'
-    'body': """
-    forceUpdate(${1:callback});
-    """
-
-  'React: getDefaultProps: fn() { return {...} } ':
-    'prefix': 'gdp'
-    'body': """
-    getDefaultProps : function () {
-      return {${1};
-    }
-    """
-
-  'React: getInitialState: fn() { return {...} } ':
-    'prefix': 'gis'
-    'body': """
-    getInitialState : function() {
-      return {
-        ${1} : ${2}
-      };
-    }
-    """
-
-  'React: isMounted()':
-    'prefix': 'ism'
-    'body': """
-    isMounted()
+    componentWillUpdate (nextProps, nextState) {
+      ${1}
+    }
+    """
+
+  'React: defaultProps { ... }':
+    'prefix': 'defprops'
+    'body': """
+    static defaultProps = {
+      ${1} : ${2}
+    }
     """
 
   'React: propTypes { ... }':
     'prefix': 'pt'
     'body': """
-    propTypes: {
+    static propTypes = {
       ${1} : React.PropTypes.${2:string}
     }
     """
 
-  'React: render: fn() { return ... }':
+  'React: render () { return ... }':
     'prefix': 'ren'
     'body': """
-    render : function () {
+    render () {
       return (
-        ${1:<div />}
+        ${1}
       );
     }
     """

  'React: render(component, container, [callback])':
    'prefix': 'rrc'
    'body': """
    React.render(${1:<$2 />}, ${3:document.body}${4:, ${5:callback}})
    """

########################

  'React: setState({ ... })':
    'prefix': 'sst'
    'body': """
    this.setState({
      ${1} : ${2}
    });
    """

  'React: shouldComponentUpdate (np, ns) { ... }':
    'prefix': 'scu'
    'body': """
    shouldComponentUpdate (nextProps, nextState) {
      ${1}
    }
    """
