   "Create a component, React style. Should be called with a map,
   looking like this:
 
-    {:get-initial-state (fn [this])
-     :component-will-receive-props (fn [this new-argv])
-     :should-component-update (fn [this old-argv new-argv])
-     :component-will-mount (fn [this])
-     :component-did-mount (fn [this])
-     :component-will-update (fn [this new-argv])
-     :component-did-update (fn [this old-argv])
-     :component-will-unmount (fn [this])
-     :reagent-render (fn [args....])}   ;; or :render (fn [this])
+  ```cljs
+  {:get-initial-state (fn [this])
+   :component-will-receive-props (fn [this new-argv])
+   :should-component-update (fn [this old-argv new-argv])
+   :component-will-mount (fn [this])
+   :component-did-mount (fn [this])
+   :component-will-update (fn [this new-argv])
+   :component-did-update (fn [this old-argv])
+   :component-will-unmount (fn [this])
+   :reagent-render (fn [args....])}   ;; or :render (fn [this])
+  ```
 
   Everything is optional, except either :reagent-render or :render."
   [spec]



(defn current-component
  "Returns the current React component (a.k.a this) in a component
  function."
  []
  comp/*current-component*)

  that any Reagent hiccup forms must be processed with as-element. For example
  like this:

  ```cljs
  (r/create-element \"div\" #js{:className \"foo\"}
    \"Hi \" (r/as-element [:strong \"world!\"])
  ```

  which is equivalent to

  ```cljs
  [:div.foo \"Hi\" [:strong \"world!\"]]
  ```"
  ([type]
   (create-element type nil))
  ([type props]
