Skip to content

Instantly share code, notes, and snippets.

View titusdecali's full-sized avatar
🖖

Titus Decali titusdecali

🖖
View GitHub Profile
@titusdecali
titusdecali / index.html
Created January 25, 2022 01:25
▶ Liquid Button v2
<svg class="liquid-button"
data-text="DIVE IN"
data-hover-factor="-30"
></svg>
@titusdecali
titusdecali / childAccessParent.js
Created June 20, 2021 09:11
Vue: Access parent's data from child with $refs
// Parent.vue
<template>
<ChildComponent ref="child" />
</template>
// In Parent.vue's methods
this.$refs.child.methodName()
@titusdecali
titusdecali / reload.vue
Last active June 20, 2021 07:11
Vue: Reload individual component
<template>
<component-to-re-render :key="reloadMe" />
</template>
<script>
export default {
data() {
return {
@titusdecali
titusdecali / accessRouterData.vue
Created June 20, 2021 05:55
Vue: Access all vue-router routes and metadata
v-for="(route, idx) in $router.options.routes.filter(
(routeItem) => routeItem.name === $route.matched[0].name
)"
@titusdecali
titusdecali / parentToChild.js
Last active June 20, 2021 01:51
Vue: Access data in $parent from child
// In parent
data() {
return {
message: 'This is my message'
}
}
// In child template
<div>{{ $parent.message }}</div> // <-- results in 'This is my message'
@titusdecali
titusdecali / Button.vue
Last active June 18, 2021 01:18
Vue Dynamic Button Component example
<template>
<button
:disabled="disabled"
:type="type"
class="btn"
:class="[
variant ? `btn-${variant}` : '',
disabled ? disabled : ''
]"
@click="!disabled ? $emit('clicked') : ''"
@titusdecali
titusdecali / utils.js
Last active June 18, 2021 00:57
Global Vue Utility Function Example
// import store from '../store' <-- To access your Vuex store
import Vue from 'vue' // <-- used for vue-toastification
class Utils {
// Copy a string to user's clipboard
copyToClipboard(text) {
let copyText = document.createElement('input')
document.body.appendChild(copyText)
copyText.value = text
copyText.select()
@titusdecali
titusdecali / detectPlatform.js
Last active June 18, 2021 00:37
Detect Desktop or Mobile Device in Vue
async mounted() {
// Detect if user is on Desktop or Mobile platform, then save to store
this.$isMobile()
? this.$store.commit('setPlatform', 'mobile')
: this.$store.commit('setPlatform', 'desktop')
},
@titusdecali
titusdecali / scrollToTop.js
Last active June 17, 2021 22:15
VUE: Scroll to top after every route change
// In App.vue
watch: {
$route() {
window.scrollTo(0, 0)
}
},
@titusdecali
titusdecali / main.js
Last active December 28, 2021 22:46
Vue3 i18n main.js setup
import { createApp } from 'vue'
import App from './App.vue'
// i18n
import I18n from './i18n.js'
const i18n = createI18n({
locale:
localStorage.getItem('lang') ||
// Detect user's browser language