JQuery рд╕реЗ Svelte рддрдХ рдЪрд▓реЗ рдЬрд╛рдУ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдереЗ

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред

рдпрд╣ рд▓реЗрдЦ "рдирд┐рд░рдВрддрд░рддрд╛ рд╕реЗ рджреВрд░ Jvel рд╕реЗ Svelte, рдХреЛрдИ рджрд░реНрдж рдирд╣реАрдВ рд╣реИ ред"

рдиреАрдЪреЗ рдореИрдВ рдЙрди рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдореБрдЭреЗ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдирд╣реАрдВ рдереЗ, рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЗрддрдирд╛ рдореМрд▓рд┐рдХ рдерд╛ рдЬрд╣рд╛рдВ рдореИрдВ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рдмрд┐рдирд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛ ред

рдкрд░рд┐рдЪрдп


рдореИрдВрдиреЗ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдлреНрд░рдВрдЯ-рдПрдВрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рд╣реИ, рдпрд╣ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдореБрдЭреЗ рдмрдбрд╝реЗ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдкрдбрд╝рд╛ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХреНрдпреЛрдВрдХрд┐ jQuery рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЬрд░реВрд░реА рд╣реИ, Svelte рджреГрд╖реНрдЯрд┐рдХреЛрдг рдШреЛрд╖рдгрд╛рддреНрдордХ рд╣реИред

рджреВрд╕рд░реЗ, рдХреНрдпреЛрдВрдХрд┐ jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдорд╛рд░рд╛ рджрд╛рдпрд░рд╛ рд╣рдореЗрд╢рд╛ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реЛрддрд╛ рд╣реИ, рд╣рдо рдХрд┐рд╕реА рднреА рдХреЛрдб рдХреА рдХрд┐рд╕реА рднреА рд▓рд╛рдЗрди рд╕реЗ рд╡реЗрдм рдкреЗрдЬ рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЖрдИрдбреА рдпрд╛ рд╕реАрдПрд╕рдПрд╕ рдЪрдпрдирдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд╕реНрд╡реЗрд▓реНрдЯ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХреЗрд╡рд▓ рдШрдЯрдХ рд╣реА, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдмрд╛рд╣рд░реА рдпрд╛ рдЖрдВрддрд░рд┐рдХ рддрддреНрд╡ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИрдВред

Svelte рдХреЗ рд╕рд╛рде, рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ OOP рдорд┐рд▓рддрд╛ рд╣реИ: рд╣рдо рд╕реНрд╡рдпрдВ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рд╣рдо рдХреЗрд╡рд▓ рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдШрдЯрдХ рдХреЛ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреИрд╕реЗ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░ рдХреЗрд╡рд▓ рдХреЛрдб рдЬрд╛рдирддрд╛ рд╣реИред

рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ :)

рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП Svelte рдХреЗ рджреЛ рддрдВрддреНрд░ рд╣реИрдВред

рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╡реИрд░рд┐рдПрдмрд▓ (рдмрд╛рдЗрдВрдбрд┐рдВрдЧ, рдореИрдкрд┐рдВрдЧ)


рд╣рдо рдПрдХ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдШрдЯрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдореИрдк рдХрд░рддреЗ рд╣реИрдВ:

<script>
    import DetailTaskView from './DetailTaskView.svelte';
    let task = {};
    let isModal = false;
    function renderTask(data) {
        const isSuccess = data.hasOwnProperty(0);
        if (isSuccess) {
            isModal = true;
            task = data[0];
        }
    }
    import {fade} from 'svelte/transition';
</script>
{#if isModal}
    <div transition:fade>
        <DetailTaskView bind:isModal="{isModal}" {...task}/>
    </div>
{/if}

рд╣рдордиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИ?


рд╣рдордиреЗ рджреЛ рд╕реНрдерд╛рдиреАрдп рдЪрд░реЛрдВ рдХреЛ "рдХрд╛рд░реНрдп" рдФрд░ "рдореИрдореЙрдбрд▓" рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, "рдХрд╛рд░реНрдп" рдШрдЯрдХ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдбреЗрдЯрд╛ рдХреЗрд╡рд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, ".рдореЙрдбрд▓" рдШрдЯрдХ рджреГрд╢реНрдпрддрд╛ рдХрд╛ рдзреНрд╡рдЬ рд╣реИ, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдШрдЯрдХ рдкрд░ рдХреНрд░реЙрд╕ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдШрдЯрдХ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред , рдХреНрд░реЙрд╕ рдШрдЯрдХ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдХреНрд▓рд┐рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рд╕реАрдЦрддреЗ рд╣реИрдВ рдХрд┐ "isModal" рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдорд╛рди рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдо рдЗрд╕ рдирдП рдореВрд▓реНрдп рдкрд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред

рдпрджрд┐ рд╣рдореЗрдВ рджреЛ-рддрд░рдлрд╝рд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо "рдмрд╛рдЗрдВрдб:" рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░ рдореВрд▓реНрдп рдореЗрдВ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди "рдореВрд▓" рдШрдЯрдХ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╣рдо рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдШрдЯрдХ рдХреЛ рдорд╛рди рдмрддрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдШрдЯрдХ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдирд╛рдо рдЪрд░ рдХреЗ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо "{рдХрд╛рд░реНрдп}" рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ "{... рдХрд╛рд░реНрдп}" рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдШрдЯрдХ рдореЗрдВ рдПрдХ рдФрд░ рдШрдЯрдХ рдПрдореНрдмреЗрдбреЗрдб рд╣реИ, рдФрд░ рдПрдХ рддреАрд╕рд░рд╛ рднреА рд╣реИ, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЛрд▓рд░рдкреНрд▓реЗрдЯ рд╣реИред

рдШрдЯрдирд╛ рдмреБрджрдмреБрджрд╛рдИ


рдореБрдЭреЗ рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗ рд╕рд╛рде рдЧрд▓рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреНрдпрд╛рджрд╛ рдордд рдорд╛рд░реЛред

рдореВрд▓ рдШрдЯрдХ рдмрдЪреНрдЪреЗ рдХреЗ рдШрдЯрдХ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЙрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЬреЛ рдмрдЪреНрдЪреЗ рдХреЗ рдШрдЯрдХ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВред

<!-- App.svelte   -->
<script>
    import SearchForm from './SearchForm.svelte';
    async function applySample(event) {
        const sample = event.detail.sample;
        if(sample){
            search(sample);
        }
        if(!sample){
            renderPage();
        }
    }
</script>
<div class="container">
    <h1>  </h1>
    <SearchForm on:search={applySample}/>
</div>

<!-- SearchForm.svelte    -->
<script>
	import { createEventDispatcher } from 'svelte';
	const dispatch = createEventDispatcher();
	let sample = '';
    function search(event) {
        event.preventDefault();
        dispatch('search', {
            sample: sample
        });
    }
</script>
<form class="form-horizontal" id="search"
on:submit={search}>
    <div class="form-group">
        <label class="control-label col-sm-2" for="sample">
        
        </label>
        <div class="col-sm-10">
            <input id="sample" class="form-control" type="search"
             placeholder="  "
             autocomplete="on" bind:value={sample}
             />
        </div>
    </div>
</form>

рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ ?


рдореВрд▓ рдШрдЯрдХ рдореЗрдВ, "SearchForm" рдЪрд╛рдЗрд▓реНрдб рдШрдЯрдХ рдХреЗ "on: search" рдИрд╡реЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ "applySample" рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдИрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ (Event.detail) рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдШрдЯрдХ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?


рдЗрдирдкреБрдЯ рддрддреНрд╡ рдХреА "рд╡реИрд▓реНрдпреВ" рд╡рд┐рд╢реЗрд╖рддрд╛ "рдирдореВрдирд╛" рд╡реИрд░рд┐рдПрдмрд▓ рд╕реЗ рдореИрдк рдХреА рдЬрд╛рддреА рд╣реИ, "рдСрди" рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВ рдЗрд╡реЗрдВрдЯ ("рдлреЙрд░реНрдо" рдПрд▓рд┐рдореЗрдВрдЯ) рджреНрд╡рд╛рд░рд╛ "рд╕рд░реНрдЪ" рдлрдВрдХреНрд╢рди рдХреЛ рдПрдЧреНрдЬреАрдХреНрдпреВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ 'рд╕рд░реНрдЪ' рдЗрд╡реЗрдВрдЯ рдХреЛ рдЙрдард╛рддрд╛ рд╣реИ рдФрд░ "рд╕реИрдВрдкрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ" рдбрд┐рдЯреЗрд▓ "рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рд░рд╛рдЗрдЯ рдХрд░рддрд╛ рд╣реИред } - рдпрд╛рдиреА рдЦреЛрдЬ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдорд╛рдиред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЦреЛрдЬ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдорд╛рди рдореВрд▓ рдШрдЯрдХ рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ рдпрд╣ рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред

рдШрдЯрдХ рдХреЗрд╡рд▓ рдЗрдирдкреБрдЯ рдлреЙрд░реНрдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдФрд░ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдорд╛рди рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдШрдЯрдХ рдЦреЛрдЬ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВред

рд╕реМрдВрджрд░реНрдп!

рдЕрдирд┐рд╡рд╛рд░реНрдп рд╕реЗ рдШреЛрд╖рдгрд╛рддреНрдордХ рддрдХ рд╕рдВрдХреНрд░рдордг


рдпрд╣рд╛рдБ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдВрддрд░ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ: рдпрджрд┐ jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореИрдВрдиреЗ html рдорд╛рд░реНрдХрдЕрдк рдмрдирд╛рдпрд╛ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╕рд╣реА рд╕реНрдерд╛рди рдкрд░ рдбрд╛рд▓рд╛, рддреЛ Svelte рдХреЗ рд╕рд╛рде рдореИрдВ рдШрдЯрдХреЛрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рд▓реВрдк рдореЗрдВ рдореИрдВ рдШрдЯрдХреЛрдВ рдХреЛ рдкреВрд░реНрд╡-рдкрд░рд┐рдХрд▓рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ:

<!-- Paging.svelte        -->
<script>
    import {createEventDispatcher} from 'svelte';
    import OrdinalPlace from './OrdinalPlace.svelte';
    let pagingPlaces;
    //         pagingPlaces
    function addPlace(
        paging = [], index = Number.NEGATIVE_INFINITY,
        text = "", css = "") {
        paging.push({index:index,text:text,css:css});

        return paging;
    }
    const dispatch = createEventDispatcher();
    function browsePage(event) {
        const pageIndex = event.detail.index;
        dispatch('move', {
            index: pageIndex
        });
    }
</script>

{#if pagingPlaces.length}
    <table class = "table table-hover-cells table-bordered">
        <tbody>
            <tr>
            {#each pagingPlaces as place (place.index)}
                <OrdinalPlace on:move="{browsePage}"
                {...place}>
                </OrdinalPlace>
            {/each}
            </tr>
        </tbody>
    </table>
{/if}

<!-- OrdinalPlace.svelte     ""      -->
<script>
    export let index = -1;
    export let text = "";
    export let css = "";

    let number = index +1;
    function skip() {
        return !(text === "");
    }

    let letSkip = skip();
    let noSkip = !letSkip;

    import { createEventDispatcher } from "svelte";
    const dispatch = createEventDispatcher();
    function moveTo() {
        if(noSkip){
            dispatch("move", {index:index});
        }
    }
</script>
<td class="{css}" on:click="{moveTo}">
    {#if letSkip}
        {text}
    {/if}
    {#if noSkip}
        {number}
    {/if}
</td>

рдпрд╣ рдХрд╛рдо рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ ?


рдкреЗрдЬрд┐рдВрдЧ рдШрдЯрдХ рдмрдирд╛рддреЗ рд╕рдордп, рд╣рдо рдХреБрдЫ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП "рддрддреНрд╡реЛрдВ" рдХреА рдПрдХ рд╕рд░рдгреА рдмрдирд╛рддреЗ рд╣реИрдВ - "рдкреЗрдЬрд┐рдВрдЧрдкреНрд▓реЗрд╕", рдлрд┐рд░ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрдХреНрд░ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдкреЗрдЬрд┐рдВрдЧ рд╕реНрдерд┐рддрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдХ рдбрд╛рд▓реЗрдВ - "рдСрд░реНрдбрд┐рдирд▓рдкреНрд▓реЗрд╕"ред

рдлрд┐рд░ рд╕реЗ, рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реНрд╡рдпрдВ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ, рд╣рдо рдШрдЯрдХ рдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдерд┐рддрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рд╣рдо рдХрд┐рд╕реА рдШрдЯрдирд╛ рдХреЗ рдЙрднрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрд▓рдЭрд╛ рд╣реБрдЖ рдорд╛рдорд▓рд╛ рджреЗрдЦрддреЗ рд╣реИрдВред рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рдСрд░реНрдбрд┐рдирд▓рдкреНрд▓реЗрд╕" рдШрдЯрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдШрдЯрдХ рдкреГрд╖реНрда рдХреЛ рд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреЗрдЬ рдЗрдВрдбреЗрдХреНрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ "рдЪрд╛рд▓" рдШрдЯрдирд╛ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдШрдЯрдирд╛ рдореВрд▓ рдШрдЯрдХ рдХреЛ рдЪреБрдирддреА рд╣реИ - "рдкреЗрдЬрд┐рдВрдЧ", рдЬреЛ рдкреГрд╖реНрда рдХреЛ рд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдпрд╣ 'рдЪрд╛рд▓' рдШрдЯрдирд╛ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд▓рд╛ рдореВрд▓ рдШрдЯрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реЗ рдЙрдард╛рддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред

Svelte рдФрд░ рдШрдЯрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдФрд░ SOLID рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдзрдХреНрдХрд╛ рджреЗрддреЗ рд╣реИрдВред

рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдШрд╛рдд


рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдореВрд▓рднреВрдд рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд▓ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рд╕рдВрдХреЗрдд рдХреЗ рдмрд┐рдирд╛ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рдкрд╛рдКрдВрдЧрд╛ред Svelte рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЗрди рдШрдЯрдХреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдореЗрдВ рдЙрдирдХреА рд╕рд╣рд╛рдпрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдкреНрд░рд╢реНрди рдореЗрдВ рдХреЛрдб рд╣реИ:

            {#each pagingPlaces as place (place.index)}
                <OrdinalPlace on:move="{browsePage}"
                {...place}>
                </OrdinalPlace>
            {/each}

рдкреЗрдЬрд┐рдВрдЧ рдореЗрдВ рдкреГрд╖реНрдареЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрд░реЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднрд╛рдЧреЗ рдФрд░ рд╕реНрд╡реЗрд▓ рдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рдПрдХ рдПрд░реЗ рдЗрдВрдбреЗрдХреНрд╕ рджрд┐рдпрд╛, рдЕрдм рд╕реНрд╡реЗрд▓реНрдЯ рдЗрд╕ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк рдПрд░реЗ рддрддреНрд╡реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рддреЗ рд╣реБрдП рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реИ , рдореИрдВрдиреЗ рдПрдХ рджрд┐рди рдХреЗ рд▓рд┐рдП рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдлрд┐рд░ рдореИрдВрдиреЗ рд╣реЙрд▓ рд╕реЗ рдорджрдж рдорд╛рдВрдЧреА рдФрд░ рд╣реЙрд▓ рдореЗрдВ рдореБрдЭреЗ рддреБрд░рдВрдд рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЬреЛ рдЗрд╕ рд░реЗрдХ рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдерд╛, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рдореЗрд░реА рдорджрдж рдХреА, рджреЛрд╕реНрддреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рджред

рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВ: рд╕рд░рдгреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдИ рднреА рдкрд╛рд╕ рдлрд┐рд░ рд╕реЗ рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

            {#each pagingPlaces as place (place.index)}

"PagingPlaces as place (place.index)" - рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред

рдмреЗрд╢рдХ, рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд░рд┐рдПрдХреНрдЯ / рд╡реНрдпреВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред

рджреГрд╢реНрдпрд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡


рдореЗрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдиреЗ рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП jQuery рдорд╛рд░реНрдХрдЕрдк рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд┐рдирд╛ jQuery.modal () рд╡рд┐рдзрд┐ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреАред

Svelte рдпрд╣ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ:

{#if isModal}
    <div transition:fade>
        <DetailTaskView bind:isModal="{isModal}" {...task}/>
    </div>
{/if}

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, "рд╕рдВрдХреНрд░рдордг: рдлреАрдХрд╛" рдкреГрд╖реНрда рдкрд░ рддрддреНрд╡реЛрдВ рдХреЗ рдЧрд╛рдпрдм рд╣реЛрдиреЗ / рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
рдХреЛрдИ рднреА рд╣рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рдорд╛рд░реНрдХрдЕрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИред

рдЗрд╕ рдПрдиреАрдореЗрд╢рди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрд╡реЗрд▓реЗрдЯ рдореЗрдВ рдХреБрдЫ рдФрд░ рднреА рд╣реИ: рдлреНрд▓рд╛рдИ рдПрдВрдб рдЯреНрд╡реАрди , рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд▓рд┐рдВрдХ рд╕реЗ рдЙрджрд╛рд╣рд░рдгред

рдЕрдиреНрдп


рдЪрд░ рдирд╛рдо


рд╡реИрд░рд┐рдПрдмрд▓ / рдкреИрд░рд╛рдореАрдЯрд░ / рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдирд╛рдордХрд░рдг рдХреЗ рд╕рд╛рде рдкрд░реЗрд╢рд╛рдиреА, рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд╡реИрд░рд┐рдПрдмрд▓ рджреЛрдиреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╣реИрдВрдбрд╕реЗрдЯ рдХрд╛ рдирд┐рдпрдо, рдЬрдм рдЖрдкрдХреЛ рдлреЛрди рдкрд░ рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреА рд╣реЛрдЧреА, рддрд╛рдХрд┐ рдЖрдк рдЙрд╕ рдЫреЛрд░ рдкрд░ рднреНрд░рдорд┐рдд рди рд╣реЛрдВ рдФрд░ рд╕рдм рдХреБрдЫ рд╕рдордЭ рд╕рдХреЗрдВ, рдРрд╕реЗ рджреЛрд╣рд░рд╛рдпрд╛ рдирд╛рдо рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддреЗ рд╣реИрдВред

рдЕрдЬрд╛рдХреНрд╕


рдпрд╣ Svelte рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди jQuery рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рддрд╛ рд╣реИ, jQuery.ajax рдХреЛ рднреНрд░реВрдг () рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдРрд╕рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд┐рдпрд╛ рд╣реИ, рдЖрдк рдЗрд╕реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдирд┐рд╖реНрдХрд░реНрд╖


JQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ Svelte рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрдврд╝рддреЗ рд╣реБрдП рдорд╛рд░реНрдХрдЕрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЬрдм рддрдХ рдпрд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рдЗрд╕рдХреЗ рд╕рд╛рде рдкрд╛рдк рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

Svelte рдЖрдкрдХреЗ рдорд╛рд░реНрдХрдЕрдк рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ JS рдХреЛрдб рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рддрд╛ рд╣реИ, Svelte рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХрд╛ рдХреЛрдб рдЕрдзрд┐рдХ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдФрд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд░реЛрдзреА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

Svelte рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдпрд╣ рдЖрдкрдХреЗ рдФрд░ рдЖрдкрдХреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛!

рд╕рдВрджрд░реНрдн


рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореЗрдВ рд░реВрд╕реА рднрд╛рд╖реА рд╕рдореБрджрд╛рдп рд╕реНрд╡реЗрд▓реНрдЯ рдХреЗ
рд╕реНрд╡реЗрд▓реНрдЯ
рдЪреИрдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рдВрдХреНрд░рдордг рдХреЗ рд╕рд╛рде рд╕реНрд╡реЗрд▓реНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ

рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

PS: рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ Habr рдиреЗ рдмреГрд╣рджрд╛рдиреНрддреНрд░ рдХреЛ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдЪреИрдирд▓ рдХреЗ рд▓рд┐рдВрдХ рд╕реЗ рдмрд╛рд╣рд░ рдХреНрдпреЛрдВ рд░рдЦрд╛ рд╣реИ, рд╕рд╣реА рд▓рд┐рдВрдХ рд▓рд╛рдЗрди рд╣реИ: tg: // resolution? рдбреЛрдореЗрди = sveltejs?

All Articles