Skip to content

Instantly share code, notes, and snippets.

View JeffreyWay's full-sized avatar

Jeffrey Way JeffreyWay

View GitHub Profile
@JeffreyWay
JeffreyWay / Modal.vue
Created July 25, 2022 21:26
Learn Vue 3: Step By Step, Episode 29 - Two Ways to Transition
<script setup>
defineProps({
show: Boolean
});
</script>
<template>
<Transition
enter-from-class="opacity-0 scale-125"
enter-to-class="opacity-100 scale-100"
@JeffreyWay
JeffreyWay / Modal.vue
Last active October 14, 2023 19:44
Learn Vue 3: Step By Step, Episode 28 - Build a Modal Component - https://laracasts.com/series/learn-vue-3-step-by-step/episodes/28
<script setup>
defineProps({
show: Boolean
});
</script>
<template>
<div v-if="show" class="modal-mask">
<div class="modal-container">
<div>
@JeffreyWay
JeffreyWay / TeamStore.js
Last active October 14, 2023 19:44
Learn Vue 3: Step By Step, Ep 27 - Build and Fill a Team Store - https://laracasts.com/series/learn-vue-3-step-by-step/episodes/27
import { defineStore } from "pinia";
export let useTeamStore = defineStore('team', {
state: () => ({
name: '',
spots: 0,
members: []
}),
actions: {
@JeffreyWay
JeffreyWay / TeamFooter.vue
Last active February 5, 2024 07:23
Learn Vue 3: Step By Step, Ep 26 - Code Organization
<template>
<footer class="mt-12 bg-gray-100 py-4 text-center">
<h5 class="font-semibold text-lg">{{ team.name }} - {{ team.spots }} Member Team</h5>
</footer>
</template>
<script setup>
defineProps({
team: Object
});
import { defineStore } from "pinia";
export let useCounterStore = defineStore('counter', {
// data
state() {
return {
count: 5
};
},
@JeffreyWay
JeffreyWay / CounterView.vue
Created July 11, 2022 18:21
Learn Vue 3: Step by Step, Episode 24 - Direct Mutation Concerns
<script setup>
import {counter} from "@/stores/counterStore";
</script>
<template>
<div>
<h1>{{ counter.count }}</h1>
<button @click="counter.increment()">Increment</button>
</div>
<template>
<div>
<h5>{{ state.name }}</h5>
</div>
</template>
<script setup>
import {state} from "@/stores/quizStore";
</script>
@JeffreyWay
JeffreyWay / HomeView.vue
Last active September 28, 2023 16:31
Learn Vue 3: Step By Step, Episode 21 - "Refactor to defineProps and defineEmits" - https://laracasts.com/series/learn-vue-3-step-by-step/episodes/21
<script setup>
import TabbableTextarea from "@/components/TabbableTextarea.vue";
import { ref } from "vue";
let comment = ref('initial textarea value');
</script>
<template>
<main>
<form>
<script setup>
import { useStorage } from "@/composables/useStorage";
let food = useStorage('food', 'tacos');
</script>
<template>
<main>
<p>
What is your favorite food? <input type="text" v-model="food">
import Assignment from "./Assignment.js";
import AssignmentTags from "./AssignmentTags.js";
import Panel from "./Panel.js";
export default {
components: { Assignment, AssignmentTags, Panel },
template: `
<Panel v-show="assignments.length" class="w-60">
<div class="flex justify-between items-start">