{"id":2338,"date":"2022-08-25T16:29:00","date_gmt":"2022-08-25T14:29:00","guid":{"rendered":"https:\/\/www.areaweb.sk\/?p=2338"},"modified":"2023-03-09T10:00:50","modified_gmt":"2023-03-09T09:00:50","slug":"vue-3-cheat-sheet","status":"publish","type":"post","link":"https:\/\/www.areaweb.sk\/cs\/vue-3-cheat-sheet\/","title":{"rendered":"Vue 3 Cheat Sheet"},"content":{"rendered":"<p class=\"wp-block-paragraph\"><strong>Ako za\u010da\u0165<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>VUE CLI<\/strong><br>Vytvorenie noveho projectu cez Vue Cli<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install -g @vue\/cli\nThe CLI (@vue\/cli) is a globally installed npm package and provides the vue command in your terminal. \n(prida vue prikazy pre prikazovy riadok )\n\nvue create \"nazov projektu\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Projekt cez pridanie linku<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;script src=&quot;https:\/\/unpkg.com\/vue@3\/dist\/vue.global.js&quot;&gt;&lt;\/script&gt;\n\n&lt;div id=&quot;app&quot;&gt;  \n\nconst app = Vue.createApp({\n    data() {\n        return {\n            message: &#039;Vue&#039;,\n            filter:&#039;&#039;,\n            value: 20,\n            newDude: &#039;&#039;,\n            show:true,\n            pole: [&#039;pole1&#039;, &#039;pole2&#039;, &#039;pole3&#039;],\n        }\n    },\n    methods: {\n        add() {\n            this.pole.push(\n                this.newDude\n            )\n        },\n        remove(dude) {\n            this.pole = this.pole.filter( item =&gt; item !== dude)\n        }\n    },\n    mounted() {\n        console.log(&#039;spustene Vue&#039;);\n    },\n}).mount(&quot;#app&quot;);\n\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Vue a WordPress<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ ak chcem pridat sriptu type module pre import componentov\nwp_register_script('vue-script', ADRESA_CHILD_TEMY_URI . '\/vue.js', 'vue-js', null,true);\nwp_enqueue_script('vue-script');\n\nadd_filter(\"script_loader_tag\", \"add_module_to_my_script\", 10, 3);\nfunction add_module_to_my_script($tag, $handle, $src)\n{\n    if (\"vue-script\" === $handle) {\n        $tag = '&lt;script type=\"module\" src=\"' . esc_url($src) . '\"&gt;&lt;\/script&gt;';\n    }\n\n    return $tag;\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ pridaj vue a axios\nfunction func_load_vuescripts() {\n    wp_enqueue_script( 'vue-js', 'https:\/\/unpkg.com\/vue@3\/dist\/vue.global.js', array(), '', false ); \n\n    wp_register_script('axios', 'https:\/\/unpkg.com\/axios\/dist\/axios.min.js', 'vue-js', null);\n    wp_enqueue_script('axios');\n\n\n}\nadd_action('wp_enqueue_scripts', 'func_load_vuescripts');<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ hook pre pridanie html\nadd_action('electro_before_content', 'pridaj_vue_script');\nfunction pridaj_vue_script(){\n    ?&gt;\n\n    &lt;?php\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Zaklady<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Extensions pre VSCode: Vetur, Vue Snippets<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vbase - vytvori template componentu\nvdata - template pre data (vsetko zacat cey V)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ak chces pisat javascript do HTML musit ho pisat do &#8222;{  }&#8220;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Kr\u00e1tke uk\u00e1\u017eky<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ <strong>v-for loop<\/strong>, <strong>v-if<\/strong> a zmena <strong>class<\/strong>, <strong>style<\/strong> mozes pouzit aj <strong>v-show<\/strong>=\"visible\"\n &lt;p v-for=\"dude in pole\"&gt; \n        &lt;a @click.prevent=\"remove(dude)\" :class=\"{ faded: value &lt; 18,  gold: value &gt;20 }\"&gt;\n            {{dude}}\n            &lt;small v-if=\"dude.split(' ').length &lt; 3\"&gt;short name &lt;\/small&gt;\n           &lt;small v-else&gt; dlhe meno &lt;\/small&gt;\n        &lt;\/a&gt;\n &lt;\/p&gt;\n\n\/\/<strong> v model<\/strong> \n    &lt;input v-model=\"message\" :style=\"{color: 'red'}\"&gt;\n    &lt;h3&gt;{{message}}&lt;\/h3&gt;\n\n\/\/  <strong>submit <\/strong>and <strong>add<\/strong> do pola funkcia\n&lt;form @submit.prevent=\"add\"&gt;  \n&lt;!-- @keydown.enter=\"add\" --&gt;\n        &lt;input type=\"text\" v-model=\"newDude\"&gt;\n&lt;\/form&gt;\n\n\/\/ <strong>v-model.number<\/strong>\n&lt;input type=\"number\" v-model.number=\"value\"&gt;{{value}}\n\n\n\/\/ <strong>transition<\/strong> animacie, <strong>a link, click, mouseover  <\/strong>\n\/\/ ku transition musis pridat stale css\n&lt;Transition name=\"slide-fade\"&gt;\n    &lt;a :href=\"link\" v-if=\"show\" @mouseover=\"show = true\" @mouseleave=\"show = false\" &gt; {{link}} &lt;\/a&gt;\n&lt;\/Transition&gt;\n\n\/\/ prepinac \/ <strong>toogle @click<\/strong>\n&lt;div @click=\"show = !show\" &gt;\n     &lt;i class=\"fas  fa-info\"&gt;info&lt;\/i&gt;\n&lt;\/div&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Komponenty<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ <strong>slot<\/strong>\n&lt;hello-world msg=\"mesage\"&gt;Pecka slot&lt;\/hello-world&gt;&lt;br&gt;\n\n<strong>\/\/ zlozenie komponenetu <\/strong>\n&lt;template&gt;\n    &lt;li :title=\"title\"&gt;\n        &lt;article&gt;\n            {{ name }}\n            &lt;span&gt;{{ title }}&lt;\/span&gt;\n        &lt;\/article&gt;\n    &lt;\/li&gt;\n&lt;\/template&gt;\n  \n  \n&lt;script&gt;\nexport default {\n    data() {\n        return {\n  \n        }\n    }\n}\n&lt;\/script&gt;\n  \n  \n&lt;style lang=\"scss\"&gt;\nli article {\n    border: 10px solid gold;\n}\n&lt;\/style&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u010eal\u0161ie uk\u00e1\u017eky<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ cez props si preposielam data z rodica do componentu\n\n&lt;dude v-for=\"(dude, index) in characters\" \n    title=\"hello, my good dude\" \n    :name=\"wat\"\n    :key=\"dude\"&gt; {{ dude + index }}\n&lt;\/dude&gt;\n\n\/\/ cez this.$emit a $event posieladat data rodicovi\n      valueChanged(e){\n                console.log(e.target.value)\n                this.$emit('add-dude' , e.target.value)\n            }\n&lt;create-dude-form @add-dude=\"newDude = $event\"\/&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pr\u00edklad funkcie<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> &lt;input type=\"\" name=\"slug\" :value=toSlag()&gt; {{ toSlag()}}\n\n methods: {\n          toSlag() {\n            return this.projectName\n              .toLowerCase()\n              .trim()\n              .replace(\/&#91;^\\w\\s-]\/g, '')\n              .replace(\/&#91;\\s_-]+\/g, '-')\n              .replace(\/^-+|-+$\/g, '');\n          }\n        },<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>hide() {\n     this.$el.remove()\n     \/\/ this.visible = false\n     axios.delete(\/comments\/+ ID)\n}\ndelete(dude) {\n     console.log(dude)\n     this.characters = this.characters.filter(item =&gt; item !== dude)\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Uzitocne<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ak priradim elementu ref=&#8220;toto&#8220; viem sa potom nanho odkazovat cez vue<br>this.$refs.toto.innerText &#8211; vytiahnem text z elementu ktory je ozceny cez ref=&#8220;toto&#8220;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br>@input=&#8220;nazovMetody&#8220; &#8211; odpali metodu pri zmene<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Importovanie externych kniznic a komponentov<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vzdy si najprv skontroluj ci je to pre <strong>Vue 3 !!!!<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import { VueTelInput } from 'vue-tel-input';\nimport 'vue-tel-input\/dist\/vue-tel-input.css';\n\nimport moment from 'moment'\n\nexport default {\n    components: {\n        VueTelInput\n    },<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>","protected":false},"excerpt":{"rendered":"<p>Ako za\u010da\u0165 VUE CLIVytvorenie noveho projectu cez Vue Cli npm install -g @vue\/cli The CLI (@vue\/cli) is a globally installed npm package and provides the vue command in your terminal. (prida vue prikazy pre prikazovy\u2026<\/p>","protected":false},"author":1,"featured_media":2340,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28,41],"tags":[],"class_list":["post-2338","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-js","category-vue"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/www.areaweb.sk\/cs\/wp-json\/wp\/v2\/posts\/2338","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.areaweb.sk\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.areaweb.sk\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.areaweb.sk\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.areaweb.sk\/cs\/wp-json\/wp\/v2\/comments?post=2338"}],"version-history":[{"count":0,"href":"https:\/\/www.areaweb.sk\/cs\/wp-json\/wp\/v2\/posts\/2338\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.areaweb.sk\/cs\/wp-json\/wp\/v2\/media\/2340"}],"wp:attachment":[{"href":"https:\/\/www.areaweb.sk\/cs\/wp-json\/wp\/v2\/media?parent=2338"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.areaweb.sk\/cs\/wp-json\/wp\/v2\/categories?post=2338"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.areaweb.sk\/cs\/wp-json\/wp\/v2\/tags?post=2338"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}