|
1 | 1 | <template> |
2 | 2 | <main style="text-align: center"> |
3 | | - <VueLive :editorProps="{ lineNumbers: true }" :code="codeTemplate" :layout="CustomLayout" |
4 | | - :components="registeredComponents" @error="(e: any) => log('Error on first example', e)" /> |
| 3 | + <h1>Vue Live renders vue code in the browser</h1> |
| 4 | + <p class="description"> |
| 5 | + <em>vue-live</em> is a VueJs component. It renders the code passed in prop |
| 6 | + using the VueJs compiler - yes exactly like the vuejs compiler. But wait! |
| 7 | + it has a <b>super-power</b>! It keeps the rendered code reactive in the |
| 8 | + browser. |
| 9 | + </p> |
| 10 | + <p class="description"> |
| 11 | + If you edit the code in the editor on the left, the preview on the right |
| 12 | + will update automatically. |
| 13 | + </p> |
| 14 | + |
| 15 | + <div class="livebox"> |
| 16 | + <div class="hint">You can edit this <span>-></span></div> |
| 17 | + <VueLive :editorProps="{ lineNumbers: true }" :code="codeTemplate" :layout="CustomLayout" |
| 18 | + :components="registeredComponents" @error="(e: any) => log('Error on first example', e)" /> |
| 19 | + </div> |
| 20 | + |
| 21 | + <span v-if="!openExamples">+</span><span v-else>-</span> |
| 22 | + <a href="#" @click="openExamples = !openExamples">More examples</a> |
| 23 | + <div v-if="openExamples"> |
| 24 | + <h2>Vue SFC</h2> |
| 25 | + <p> |
| 26 | + If this format is not fitting for you, vue-live renders VueJs single |
| 27 | + file components as well |
| 28 | + </p> |
| 29 | + <VueLive :code="codeSfc" :layout="CustomLayout" /> |
| 30 | + <h2>SFC with setup</h2> |
| 31 | + <VueLive :code="codeSfcSetup" :layout="CustomLayout" /> |
| 32 | + <h2>Pure JavaScript code</h2> |
| 33 | + <p>Or if you prefer to, use the <b>new Vue()</b> format</p> |
| 34 | + <VueLive :code="codeJs" :layout="CustomLayout" /> |
| 35 | + <h2>Extra dependencies</h2> |
| 36 | + <p> |
| 37 | + Use the <b>requires</b> prop to make libraries and packages available in |
| 38 | + the browser |
| 39 | + </p> |
| 40 | + <VueLive :code="codeChicago" :layout="CustomLayout" :requires="chicagoRequires" /> |
| 41 | + <h2>Custom delay</h2> |
| 42 | + <p> |
| 43 | + When updates should not happen too often, for instance when a component |
| 44 | + need a lot of computing power to render, one can change the standard |
| 45 | + throttle timing. |
| 46 | + </p> |
| 47 | + <VueLive :code="`<input type='button' value='update me' />`" :layout="CustomLayout" :delay="2000" /> |
| 48 | + |
| 49 | + <h2>Default Layout</h2> |
| 50 | + <div style="width: 950px; max-width: 95vw; margin: 20px auto"> |
| 51 | + <VueLive :code="`<input type='button' value='I am Groot' />`" /> |
| 52 | + </div> |
| 53 | + <h2>Custom Layout</h2> |
| 54 | + <div> |
| 55 | + <p>Attributes available for custom layout:</p> |
| 56 | + <p> |
| 57 | + <code>code: String</code>, <code>language: String</code>, |
| 58 | + <code>components: Object</code>, <code>requires: Object</code>, ... |
| 59 | + all props passed in the |
| 60 | + <code>layoutProps</code> |
| 61 | + </p> |
| 62 | + <VueLive :code="`<input type='button' value='I am Groot' />`" :layout="CustomLayout" /> |
| 63 | + </div> |
| 64 | + |
| 65 | + <h2>JSX</h2> |
| 66 | + <VueLive :code="realjsx" :layout="CustomLayout" :jsx="true" /> |
| 67 | + |
| 68 | + <h2>Double Root</h2> |
| 69 | + <VueLive :code="doubleRoot" :layout="CustomLayout" /> |
| 70 | + |
| 71 | + <h2>Separate components for Editor and Preview</h2> |
| 72 | + <div class="separate"> |
| 73 | + <div class="preview-separate"> |
| 74 | + <VueLivePreview :code="separateCode" @error="(e: any) => (error = e)" @success="error = undefined" /> |
| 75 | + </div> |
| 76 | + <hr style="width: 950px" /> |
| 77 | + <p>Edit the code here</p> |
| 78 | + <VueLiveEditor :code="separateCode" @change="updateCode" :error="error" /> |
| 79 | + <div class="button-bar"><button>Save</button></div> |
| 80 | + </div> |
| 81 | + </div> |
5 | 82 |
|
6 | 83 | <github-corners href="https://github.com/vue-styleguidist/vue-live" gitColor="#FFFFFF" /> |
7 | 84 | </main> |
|
0 commit comments