Slide 1

Slide 1 text

バ ド ジ が 
 Svelte + Vite ド 2022 2 0 22 . 11 . 19 @seike 4 60 1

Slide 2

Slide 2 text

@seike 460 - - @seike 46 0
 - Fusic - / - / / 
 - - PHP - PHP - PHPerKaigi - JAWS Days - AWS Dev Day 2

Slide 3

Slide 3 text

Agenda 1 .Svelte + Vite 2 .Svelte 3 .Svelte 4 .Vite 5 .Vite 6 . 3

Slide 4

Slide 4 text

01 Svelte + Vite 


Slide 5

Slide 5 text

5

Slide 6

Slide 6 text


 6

Slide 7

Slide 7 text

Svelte + Vite + Tailwind CSS 7

Slide 8

Slide 8 text

02 Svelte

Slide 9

Slide 9 text

Svelte 
 JavaScript Vite Svelte Svelte Write less code No virtual DOM DOM Truly reactive Hooks 9

Slide 10

Slide 10 text

Write less code - React 10 import React, { useState } from 'react'; export default () => { const [a, setA] = useState( 1 ); const [b, setB] = useState( 2 ); function handleChangeA(event) { setA(+event.target.value); } function handleChangeB(event) { setB(+event.target.value); } return (

{a} + {b} = {a + b}

); }; UI React State Hook 
 State State input 
 State UI

Slide 11

Slide 11 text

Write less code - Svelte 11 let a = 1 ; let b = 2 ;

{a} + {b} = {a + b}

Svelte let State 
 bind 築 
 [a] input 
 p [a]

Slide 12

Slide 12 text

Write less code + Truly reactive 12 let a = 1 ; let b = 2 ;

{a} + {b} = {a + b}

Svelte 


Slide 13

Slide 13 text

TEMPLATE SYNTAX 13 {#if porridge.temperature > 1 00 }

too hot!

{:else if 8 0 > porridge.temperature}

too cold!

{:else}

just right!


 {/if} 
 {#each items as item}
  • {item.name} x {item.qty}
  • {/each} 
 {#await promise}

    waiting for the promise to resolve...

    {:then value}

    The value is {value}

    {:catch error}

    Something went wrong: {error.message}

    {/await} 
 {#key value}
    {value}
    {/key} {#if }... 
 {:else if } 
 {/if} 
 {#each as name, index} 
 ... 
 {/each} 
 {#await }... 
 {:then name}... 
 {:catch name} …
 {/await} 
 {#key }... 
 {/key}

    Slide 14

    Slide 14 text

    Props Props export 
 Props 
 14 Counter.svelte App.svelte

    Slide 15

    Slide 15 text

    $: 
 $: JS 
 
 15

    Slide 16

    Slide 16 text

    Store 16

    Slide 17

    Slide 17 text

    Store React Redux Vue Vuex 
 Store writable Store 
 subscribe 
 
 update set Store 
 
 17

    Slide 18

    Slide 18 text

    Context API Svelte ContextAPI setContext getContext hasContext getAllContexts context 
 context 
 18 Counter.svelte App.svelte

    Slide 19

    Slide 19 text

    Context API 19 Counter.svelte App.svelte

    Slide 20

    Slide 20 text

    Component Hooks onMount DOM beforeUpdate state afterUpdate onDestroy tick state 
 resolve promise 20

    Slide 21

    Slide 21 text

    No virtual DOM Virtual DOM Dom 
 
 Virtual DOM Svelte DOM 
 21

    Slide 22

    Slide 22 text

    krausest React Vue 
 Svelte 
 22 https://krausest.github.io/js-framework-benchmark/current.html

    Slide 23

    Slide 23 text

    03 Svelte

    Slide 24

    Slide 24 text

    👍 
 
 HTML CSS Javascript 🙏 $: 24

    Slide 25

    Slide 25 text

    Made With Svelte Svelte Society Example 
 25

    Slide 26

    Slide 26 text

    SvelteKit … 26

    Slide 27

    Slide 27 text

    04 Vite

    Slide 28

    Slide 28 text

    Vite HMR Rollup 28

    Slide 29

    Slide 29 text

    ES Modules - Bundle - import export 
 - ES Modules - 
 29 https://vitejs.dev/guide/why.html#slow-server-start

    Slide 30

    Slide 30 text

    vite.config.js Vite vite.config.js 
 
 Production Staging 
 
 loadEnv 
 .env Svelte Import.meta.env. 
 
 prefix 
 VITE_ 30 vite.config.js Svelte

    Slide 31

    Slide 31 text

    05 Vite

    Slide 32

    Slide 32 text

    👍 
 32

    Slide 33

    Slide 33 text

    Svelte + Vite

    Slide 34

    Slide 34 text

    34

    Slide 35

    Slide 35 text

    06

    Slide 36

    Slide 36 text

    36 Svelte UI Point 1 Example Point 2 Vite 頻 Point 3 Point 4

    Slide 37

    Slide 37 text

    Thank You We are Hiring ! https://recruit.fusic.co.jp/