svelte初始化时load函数返回props和stuff区别

本文详细解析Svelte框架中module脚本块的load函数返回的props和stuff对象。props对象用于传递属性到对应的页面组件,可以直接在组件内部使用。而stuff对象则允许在父组件和其所有子组件间共享数据,子组件可以添加新的数据到stuff,供下级组件使用。通过这两个机制,Svelte实现了组件间的高效数据流动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在svelte的module中,我们可以通过load函数返回props和stuff两个重要的对象,这两个对象分别有不同的功能作用,没弄明白很容易迷糊,本文就着重讲一下这两个对象的作用。

props

如果load函数返回props对象,那么props对象会被传递到其对应渲染的页面中。

<script context="module" lang="ts">
    
    export async function load({session,url}){
        const property1 = 'aaa';
        const property2 = 'bbb';

        return {
            props:{
                property1: property1,
                property2: property2,
            }
        }
    }

</script>

<script lang="ts">

    let property1;
    let property2;

</script>

在load函数中返回的props对象属性,只需要在页面直接定义就可以获取到。上面的例子中,在下面直接定义property1 和property2 就可以直接使用 module里面定义的值了。

stuff

stuff主要是为页面传递数据设计的,在父组件中定义了stuff,在其所有的子组件的load函数中都可以获取到。如果子组件向stuff中新增了数据,那么在子组件的子组件中可以获取到合并之后的stuff。

// 父组件
<script context="module" lang="ts">
    
    export async function load({session,url}){
        const property1 = 'aaa';
        const property2 = 'bbb';

        return {
            props:{
                property1: property1
            },
            stuff:{
                property2: property2
            }
        }
    }

</script>

<script lang="ts">

    let property1;

</script>


// 子组件
<script context="module" lang="ts">
    
    export async function load({stuff,url}){
        const property1 = 'aaa';

        console.log(stuff.property1);

        return {
            props:{
                property1: property1
            },
            stuff: {
                property1: property1 //添加属性,此时stuff里面有property1 和 property2两个属性
            }
        }
    }

</script>

父组件中load函数返回中stuff设置了属性property1 ,子组件中load方法传入stuff参数,在方法内部可以通过stuff.property1的方式来获取stuff内容。同样,在子组件返回中可以为stuff添加属性,这样它的下个层级就可以获取到property1和property2两个属性了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闲欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值