Langsung ke konten utama

Reusability Vue 3 - Composition API

 Ada 3 pembahasan dalam reusability pada vue js

  • Composable

Pada vue application "composable" itu function yang di manfaatkan oleh composition api untuk merangkum dan mengulang kembali stateful logic.
Yang biasanya gini 
<script setup>
import { ref, onMounted, onUnmounted } from "vue";

const y = ref(0);
const x = ref(0);

function update(event) {
x.value = event.pageX;
y.value = event.pageY;
}

onMounted(() => window.addEventListener("mousemove", update));
onUnmounted(() => window.addEventListener("mousemove", update));
</script>

<template>Mouse position {{ x }}, {{ y }}</template>

Ada perubahan di dalam <script>
<!-- template/ component -->
<script setup>
import { useMouse } from "../composable/mouse";

const { x, y } = useMouse();
</script>

<template>Mouse position {{ x }}, {{ y }}</template>

create 1 folder di dalam src/composable/mouse.js. 
import { ref, onMounted, onUnmounted } from "vue";

export function useMouse() {
const x = ref(0)
const y = ref(0)

function update(event) {
x.value = event.pageX
y.value = event.pageY
}

onMounted(() => window.addEventListener('mousemove', update))
onUnmounted(() => window.addEventListener('mousemove', update))

return { x, y}
}

Jangan lupa jika anda menggunakan vue js perlu tambahkan route. kalo nuxt tempatkan di folder /pages

  • Custom Directive

By default vue js sudah banyak directive yang bisa di pake contoh: v-show, v-model, etc. akan tetapi kita bisa custom directive. Perlu diketahui DOM sangat penting yang harus di kuasai
<template>
<input v-focus />
<div v-event>ready</div>
<div id="demo"></div>
</template>

<script setup>
const vFocus = {
mounted: (el) => el.focus(),
};

const vEvent = {
mounted: (el) => el.addEventListener("click", clickRun),
};

function clickRun() {
document.getElementById("demo").innerHTML = "Ready to go";
}
</script>

  • Plugin

Plugin di vue js seperti menambahkan function code untuk mempermudah di tempate. sebagai contoh kita install I18n language internationalize. 

Install package nya npm i vue-i18n. 
Note: Sebaiknya language di pisahkan dalam satu folder beda file. contoh en.json id.json/ en.js id.js. recomended json
import i18nPlugin from './plugins/i18n'

const app = createApp(App)

app.use(createPinia())
app.use(router)
app.use(i18nPlugin, {
greetings: {
hello: 'welcome',
class: 'Vue Js'
}
})

create file /plugins/i18n.js
export default {
install: (app, options) => {
// inject a globally available $t() method
app.config.globalProperties.$t = (key) => {
// retrieve a nested property in `options`
// using `key` as the path
return key.split('.').reduce((o, i) => {
if (o) return o[i]
}, options)
}
}
}

Jadi di template tinggal gini
<template>
<h1>{{ $t("greetings.class") }}</h1> // Vue Js
</template>


Bonus register global component

tambahkandi main.js
import GlobalComponent from './components/GlobalComponent.vue'
const app = createApp(App)
app.component('GlobalComponent', GlobalComponent)

ini contoh componentnya
<template>Create Global Component</template>

di template tinggal tanpa perlu import component
<template>
<global-component />
</template>

Komentar

Postingan populer dari blog ini

Bumi Bumi Mengelilingi Matahari 3D Cara meruning dengan menggunakan Keyboard: CTRL + y Yaitu untuk Revolusi Bumi mengelilingi Matahari y yaitu Kebalikannya CTRL + d yaitu untuk Rotasi poros Bumi d yaitu kebalikannya #include #include #include static int year = 0, day = 0; void init(void) { glClearColor (0.0, 0.0, 0.0, 0.0); glShadeModel (GL_FLAT); } void display(void) { glClear (GL_COLOR_BUFFER_BIT); glColor3f (1.0, 0.0, 0.0); /*Warna Merah*/ glPushMatrix(); glutWireSphere(1.0, 20, 16); /* Draw Matahari */ glRotatef ((GLfloat) year, 0.0, 1.0, 0.0); glTranslatef (2.0, 0.0, 0.0); glRotatef ((GLfloat) day, 0.0, 1.0, 0.0); glutWireSphere(0.2, 10, 8); /* Draw planet Kecil */ glPopMatrix(); glutSwapBuffers(); } void reshape (int w, int h) { glViewport (0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode (GL_PROJECTION); glLoadIdentity (); gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity...

Game Diver Jimmy

Bantu Kenny menemukan harta karun, awas ada mahluk yang membahayakan. DOWNLOAD DISINI!!!

Hacking Registry dengan batch file

Pada dasarnya batch file adalah sebuah script apabila script tersebut dijalankan akan berhubungan langsung dengan shell windows. Perintah dasar seperti copy, rename dan masih banyak lagi. Kita akan bahas disini yaitu perintah REG. Perintah REG merupakan perintah untuk mengakses Registry secara langsung.  Perintah dasarnya: REG ADD REG DELETE REG COPY REG SAVE REG LOAD REG UNLOAD REG QUERY REG COMPARE REG EXPORT REG IMPORT 1. REG ADD digunakan untuk menambahkan key atau value pada registry windows. Struktur dari perintah REG ADD adalah sebagai berikut: REG ADD KeyName [/v NamaValue] [/t Type] [/d Data] [/f] Keterangan: REG ADD perintah dasar untuk menambah key atau value pada registry KeyName yang akan dijadikan sasaran (root key) HKEY_CLASSES_ROOT => HKCR HKEY_CURRENT_USER => HKCU HKEY_LOCAL_MACHINE => HKLM HKEY_USERS => HKU HKEY_CURRENT_CONFIG => HKCC NamaValue => digunakan untuk menambahkan nama value pada registry Type =...