iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >slot-scope怎么在Vue中使用
  • 238
分享到

slot-scope怎么在Vue中使用

2023-06-14 13:06:17 238人浏览 泡泡鱼
摘要

slot-scope怎么在Vue中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。<!DOCTYPE html><html lang=&

slot-scope怎么在Vue中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>组件之通过插槽(slot)分发内容</title>    <script src="你的vue地址,请下载最新版的"></script>    <script>        Vue.component("test-slot",{           // 插槽允许有默认内容           template:               `<div>                    <strong>Error!</strong>                    <slot></slot>                </div>               `,            data:function () {                return {                    name:"perry"                }            }        });    //    具名插槽        Vue.component("slot-name",{           template:               `<div>                      <header>                            <slot name="header"></slot>                      </header>                     <main>                        <slot ></slot>                     </main>                     <footer>                        <slot name="footer"></slot>                     </footer>                 </div>               `        });            //    作用域插槽        Vue.component("todo-list",{            inheritAttrs:false,            props:{                todos:[Array,Object]            },            template:            `<ul>                <li v-for="todo in todos" :key="todo.id"  >                    <slot :data="todo">{{todo.text}}</slot>                </li>             </ul>            `        });                    </script>        <style>        li{            list-style: none;            display: inline-block;            font-size: 25px;        }    </style></head><body>    <div id="app">        <!--1、插槽内容  slot可以接收任何内容、代码,包括组件-->        <test-slot>Something bad happened.你是谁啊,我认识你吗</test-slot>        <test-slot>            Something bad happened.            <!--允许使用变量,但该变量必须是本作用域的才会生效,这里name的值将会是"岔道口"-->            <h4>标题{{name}}</h4>            <img src="img/flower.jfif" alt="图片无法显示">                </test-slot>        <!--2、具名插槽 slo有一个特殊的属性name,可以使插槽具名-->        <slot-name>            <h4>劝学</h4>            <p>少壮不努力,老大徒伤悲</p>            <p>光阴似箭,日月如梭</p>            <template slot="header">                <ul >                    <li>主页</li>                    <li>关于时间</li>                    <li>关于人生</li>                    <li>关于未来</li>                </ul>            </template>            <p>你好啊</p>            <p slot="footer">                <p>结尾</p>                <p>粤ICP备6545646456415</p>            </p>        </slot-name>                <!--使用作用域插槽,通过slot-scope实现-->        <todo-list :todos="todos">            <template slot-scope="slotProps">                <span v-if="slotProps.data.isTrue">√</span>                {{slotProps.data.text}}            </template>        </todo-list>                <!--使用ES2015结构语法-->        <todo-list :todos="todos">            <template slot-scope="{data}">                <span v-if="data.isTrue">√</span>                {{data.text}}            </template>        </todo-list>            </div>            <script>        new Vue({            el:"#app",            data:{                name:"岔道口",                todos:[                    {text:"A",id:1,isTrue:true},                    {text:"B",id:2,isTrue:true},                    {text:"C",id:3,isTrue:false},                    {text:"D",id:4,isTrue:true},                ],                // slotProps:""            }        })            </script></body></html>

例程中也写了普通插槽和具名插槽,这个我就不说,我就说一下作用域插槽。首先从“作用域插槽“”这个名字说起,本来你父组件的模板是无法使用到子组件模板中的数据,官网中有一句特别强调的话:父组件模板的所有东西都会在父级作用域内编译;子组件模板的所有东西都会在子级作用域内编译。这句话其实挺难理解,举个例子就知道了,

<test-slot>          Something bad happened.         <!--允许使用变量,但该变量必须是本作用域的才会生效,这里name的值将会是"岔道口"-->           <h4>标题{{name}}</h4>           <img src="img/flower.jfif" alt="图片无法显示"></test-slot>

这是我上面的例子,也就是说这里name必须是当前组件里的,不能是test-slot这个组件内部的数据,这是它作用域限制,name这个数据属于父组件的作用域,所以只能是父组件的数据。但是slot-scope的出现却实现了父组件调用子组件内部的数据,子组件的数据通过slot-scope属性传递到了父组件

//    作用域插槽    Vue.component("todo-list",{        inheritAttrs:false,        props:{            todos:[Array,Object]        },        template:        `<ul>            <li v-for="todo in todos" :key="todo.id"  >                  //这里的:data=“todo”就是讲子组件todo这个数据传给了父组件                <slot :data="todo">{{todo.text}}</slot>//todo.text是默认值,父组件会把它覆盖掉            </li>         </ul>        `    });
<!--使用作用域插槽,通过slot-scope实现--><todo-list :todos="todos">    <template slot-scope="slotProps">        <span v-if="slotProps.data.isTrue">√</span>        {{slotProps.data.text}}    </template></todo-list>

使用的时候就是这样,从子组件传过来的名为data值为todo的数据将会被slot-scope接收,需要注意的是,slot-scope接收的是一个对象,这里命名为slotProps,也就是说你传过来的data将会作为slotProps的一个属性,所以需要slotProps.data才能调用到data。前面说了,data的值为todo,todo是什么呢?todo是todos遍历出来的,所以是一个对象。

new Vue({    el:"#app",    data:{        name:"岔道口",        todos:[            {text:"A",id:1,isTrue:true},            {text:"B",id:2,isTrue:true},            {text:"C",id:3,isTrue:false},            {text:"D",id:4,isTrue:true},        ],        // slotProps:""    }});

看完上述内容,你们掌握slot-scope怎么在Vue中使用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: slot-scope怎么在Vue中使用

本文链接: https://www.lsjlt.com/news/271272.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • slot-scope怎么在Vue中使用
    slot-scope怎么在Vue中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。<!DOCTYPE html><html lang=&...
    99+
    2023-06-14
  • vue template中slot-scope/scope怎么用
    这篇文章主要为大家展示了“vue template中slot-scope/scope怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue template...
    99+
    2024-04-02
  • vue中使用slot与slot-scope有什么区别
    本文小编为大家详细介绍“vue中使用slot与slot-scope有什么区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue中使用slot与slot-scope有什么区别”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习...
    99+
    2023-07-04
  • 深入理解vue中的 slot-scope=“scope“
    目录理解vue的 slot-scope=“scope“vue中的slot和slot-scope使用插槽的作用具名插槽 作用域插槽总结理解vue的 s...
    99+
    2022-12-09
    vue slot-scope=scope slot-scope=scope
  • vue中的slot与slot-scope实例分析
    本篇内容主要讲解“vue中的slot与slot-scope实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue中的slot与slot-scope实例分析”吧!写在前面vue 中关于插槽的...
    99+
    2023-06-27
  • vue的slot-scope/scope属性如何用
    这篇文章主要介绍了vue的slot-scope/scope属性如何用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue的slot-scope/scope属性如何用文章都会有所收获,下面我们一起来看看吧。在vu...
    99+
    2023-07-04
  • vue中slot与slot-scope的区别是什么
    vue中slot与slot-scope的区别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。单个插槽 | 默认插槽 | 匿...
    99+
    2024-04-02
  • vue作用域插槽详解、slot、v-slot、slot-scope
    目录vue 插槽slot和具名插槽作用域插槽的核心作用是 实例说明子组件父组件效果图vue 插槽slot和具名插槽 作用都是在调用组件的时候传递一些DOM结构进去, 不同点...
    99+
    2024-04-02
  • vue中的slot-scope及scope.row用法
    目录slot-scope及scope.row的用法vue项目中slot-scope="scope"报错scope is defined but never use...
    99+
    2024-04-02
  • JavaScript--在Vue中使用插槽:slot
    目录在Vue中使用插槽:slot作用域插槽:使用template标签包裹总结在Vue中使用插槽:slot 1、在子组件的template里可以直接使用slot标签<slot&g...
    99+
    2024-04-02
  • Vue的slot怎么使用
    这篇文章主要讲解了“Vue的slot怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue的slot怎么使用”吧! 单个 Slot 在子组件内使用...
    99+
    2024-04-02
  • Vue插槽slot怎么使用
    这篇文章主要讲解了“Vue插槽slot怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue插槽slot怎么使用”吧! 一、插槽的含义 插槽 sl...
    99+
    2024-04-02
  • Vue中如何使用slot
    这期内容当中小编将会给大家带来有关Vue中如何使用slot,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。关于slot是这样说的,除非子组件模板包含至少一个 <slot> 插口,否则父组件的内容...
    99+
    2023-06-04
  • vue中怎么使用slot分发内容
    这篇文章将为大家详细讲解有关vue中怎么使用slot分发内容,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、什么是slot在使用组件时,我们常常要像这样组...
    99+
    2024-04-02
  • Vue中slot-scope的深入理解(适合初学者)
    百度上已经有很多的关于slot-scope的文章,但我感觉都是那些以前没学好,又回头学的人,他们都使用了.Vue文件,我觉得有点不适合初学者,所以我就写一篇适合初学者的。 先抛例程:...
    99+
    2024-04-02
  • Vue中slot的使用详解
    目录使用 slot基础用法具名插槽作用域插槽slot 实现总结在Vue中,我们使用组件来组织页面和组织代码,类似于搭积木,每一个组件都是一个积木,使用一些相同或者不同组件就能搭建出我...
    99+
    2024-04-02
  • Vue中的slot如何使用
    这篇文章主要介绍了Vue中的slot如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中的slot如何使用文章都会有所收获,下面我们一起来看看吧。在Vue中,我们使用组件来组织页面和组织代码,类似于搭...
    99+
    2023-06-30
  • vue组件化中slot怎么用
    这篇文章将为大家详细讲解有关vue组件化中slot怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言slot可以在子组件中开启插槽,在父组件引用该组建时,可以定义这...
    99+
    2024-04-02
  • vue插槽slot怎么用
    这篇文章给大家分享的是有关vue插槽slot怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言Vue的slot插槽,可以从字面意思来了解用途,占用占坑的意思,既然是占坑肯定...
    99+
    2024-04-02
  • Vue中怎么使用slot实现内容分发
    这篇文章给大家介绍Vue中怎么使用slot实现内容分发,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。编译作用域在深入内容分发 API 之前,先明确内容在哪个作用域里编译。假定模板为&l...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作