返回顶部
首页 > 资讯 > 前端开发 > JavaScript >关于VUE的编译作用域及slot作用域插槽问题
  • 804
分享到

关于VUE的编译作用域及slot作用域插槽问题

2024-04-02 19:04:59 804人浏览 薄情痞子
摘要

什么是插槽?插槽的指令为v-slot,它目前取代了slot和slot-scope,插槽内容,Vue实例一套内容分发的api,将slot元素作为承载分发内容的出口。 插槽分为单个插槽,

什么是插槽?插槽的指令为v-slot,它目前取代了slot和slot-scope,插槽内容,Vue实例一套内容分发的api,将slot元素作为承载分发内容的出口。

插槽分为单个插槽,具名插槽,还有作用域插槽,前两种比较简单这里就不赘述了,今天的重点是讨论作用域插槽。
简单来说,前两种插槽的内容和样式皆由父组件决定,也就是说显示什么内容和怎样显示都由父组件决定;
作用域插槽的样式由父组件决定,内容却由子组件控制。简单来说:前两种插槽不能绑定数据,作用域插槽是一个带绑定数据的插槽。

下面给大家介绍VUE的编译作用域及slot作用域插槽问题,一起看看吧!

其实就是 如果有很多个组件 ,当你在组件 使用变量的时候 ,那么你变量的作用域其实就也是在他定义的代码中找,如果没找到,那么就报错,【这个很基础的 是人都看出的】

官方说:父组件模板的所有东西都会在父级作用域内编译;子 组件模板的所有东西都会在子级作用域内编译。

下面例子完美说明了:

作用域插槽是slot一个比较难理解的点这里需要细心理解:

我现在说下软件需求目标:

子组件中有一组数据:比如:pLanguages: ['javascript', 'python', 'Swift', 'Go', 'c++'],我要他在子组件的插槽中 ,有的用列表显示,有的用 - 链接、有的用 * 链接。

先看源代码(未使用插槽,写死的,在这个代码中改写 使用插槽作用域):

源代码:


<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>购物车</title>
        <script src="js/vue.js"></script>
    </head>
    <body>
            <!-- 未使用插槽 下面模板是写死的 -->
        <template id="cpn">
                <div>
                	<ul>
                    <li v-for=" item in pLanguages">{{item}}</li>
                	</ul>
                </div>
        </template>

        <div id="app">
              <cpn></cpn>
        </div>


        
        <script>
            const app = new Vue({
                el: "#app",
                components: {
                    'cpn': {
                        template: "#cpn",
                        data() {
                            return {
                                pLanguages: ['JavaScript', 'Python', 'Swift', 'Go', 'C++']
                            }
                        }
                    }
                }
            })
        </script>

    </body>
</html>

那么如果用插槽:


<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>购物车</title>
        <script src="js/vue.js"></script>
    </head>
    <body>
            <!-- 使用 了 插槽 且 下面设置了 插槽slot 默认值 -->
        <template id="cpn">
              <div>
               <slot>       <!-- 已改动 -->
                   <ul>
                       <li v-for=" item in pLanguages">{{item}}</li>
                   </ul>
               </slot>
              </div>
        </template>

        <div id="app">
              <cpn></cpn>           <!-- 使用默认值 列表的形式 -->
              <cpn>          <!-- 已改动 -->
              
                    <!-- 问题就在这里 我想要以 - 链接的方式展现cpn组件中data中的数据,我无法获取,
                    因为作用域,这里的作用域是Vue实例app的! 只能获取到Vue实例app的data!
                     所以 下面这句代码是错的!!! 所以怎么解决插槽代码获取子组件中的data呢?
                     -->
                    
                    <span v-for="item in pLanguages">{{item + "-"}}</span>
                    
              </cpn>
        </div>


        
        <script>
            const app = new Vue({
                el: "#app",
                components: {
                    'cpn': {
                        template: "#cpn",
                        data() {
                            return {
                                pLanguages: ['JavaScript', 'Python', 'Swift', 'Go', 'C++']
                            }
                        }
                    }
                }
            })
        </script>

    </body>
</html>

代码已经在里面很详细的说明了,问题也标注出来了,简而言之:

因为不在子组件的作用域,怎么解决插槽代码获取子组件中的data呢?

解决方案: 利用slot作用域插槽

到此这篇关于VUE 的 编译作用域 以及 slot作用域插槽的文章就介绍到这了,更多相关vue作用域插槽内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 关于VUE的编译作用域及slot作用域插槽问题

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

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

猜你喜欢
  • 关于VUE的编译作用域及slot作用域插槽问题
    什么是插槽?插槽的指令为v-slot,它目前取代了slot和slot-scope,插槽内容,vue实例一套内容分发的api,将slot元素作为承载分发内容的出口。 插槽分为单个插槽,...
    99+
    2024-04-02
  • vue作用域插槽详解、slot、v-slot、slot-scope
    目录vue 插槽slot和具名插槽作用域插槽的核心作用是 实例说明子组件父组件效果图vue 插槽slot和具名插槽 作用都是在调用组件的时候传递一些DOM结构进去, 不同点...
    99+
    2024-04-02
  • Vue.js slot插槽的作用域插槽用法详解
    目录没有插槽的情况Vue2.x 插槽有插槽的情况具名插槽没有slot属性插槽简单实例应用作用域插槽 ( 2.1.0 新增 )Vue3.x 插槽插槽作用域插槽没有插槽的情况 <...
    99+
    2024-04-02
  • vue作用域插槽有什么用
    这篇文章给大家分享的是有关vue作用域插槽有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。作用域插槽利用好作用域插槽可以做一些很有意思的事情,比如定义一个基础布局组件A,只...
    99+
    2024-04-02
  • Vue作用域插槽怎么使用
    今天小编给大家分享一下Vue作用域插槽怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。简单的展示列表现在我们做一个纯展...
    99+
    2023-07-04
  • Vue默认插槽,具名插槽,作用域插槽定义及使用方法
    目录一、三种插槽的定义1.默认插槽2.具名插槽3.作用域插槽二、使用方法1.默认插槽2.具名插槽3.作用域插槽应用场景: 插槽的作用是在子组件中某个位置插入父组件的自定义html结构...
    99+
    2024-04-02
  • 浅析Vue中插槽Slot的作用和具名插槽
    一、插槽Slot1.1.插槽Slot的作用⭐⭐ 初识插槽:为了让这个组件具备更强的通用性,我们不能将组件中的内容限制为固定的div、span等等这些元素;【相关推荐:vuejs视频教程】比如某种情况下我们使用组件,希望组件显示的是一个按钮,...
    99+
    2022-11-22
    Vue vue3 vue.js 插槽
  • Vue作用域插槽的示例分析
    这篇文章主要介绍Vue作用域插槽的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!作用域插槽不是那么直观的一个概念。Vue文档使用了一段描述性的话来解释作用域插槽:有的时候你希...
    99+
    2024-04-02
  • Vue插槽Slot的作用是什么及怎么使用
    本篇内容介绍了“Vue插槽Slot的作用是什么及怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!插槽Slot插槽Slot的作用初识插槽...
    99+
    2023-07-04
  • Vue具名插槽+作用域插槽的混合使用方法
    vue + elementui 的项目中,通过后端返回的数据动态封装表单组件。 其中有些场景: 1、有些下拉框是联动的,例如前面的一个下拉框选择值之后,后一个下拉框才根据前面的下拉框...
    99+
    2024-04-02
  • vue中作用域插槽的示例分析
    小编给大家分享一下vue中作用域插槽的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:<child>...
    99+
    2024-04-02
  • 使用vue的作用域插槽的原因是什么?
    这篇文章主要介绍了使用vue的作用域插槽的原因是什么,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。Vue插槽是一种将内容从父组件注入子组件的绝佳方法。下面是一个基本的示例,如果我们不提供父级的任何slot位的内容,刚父级...
    99+
    2023-06-14
  • Vue组件之作用域插槽的示例分析
    小编给大家分享一下Vue组件之作用域插槽的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!写作用域插槽之前,先介绍一下Vue中的slot内容分发:如果<child-compon...
    99+
    2024-04-02
  • Vue.js的作用域插槽的介绍以及使用场景
    这篇文章主要介绍“Vue.js的作用域插槽的介绍以及使用场景”,在日常操作中,相信很多人在Vue.js的作用域插槽的介绍以及使用场景问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • Vue中匿名、具名和作用域插槽有什么用
    这篇文章给大家分享的是有关Vue中匿名、具名和作用域插槽有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Vue 中的插槽在开发组件的过程中其实是非常重要并且好用的。Vue ...
    99+
    2024-04-02
  • Vue中匿名插槽与作用域插槽合并和覆盖行为的示例分析
    小编给大家分享一下Vue中匿名插槽与作用域插槽合并和覆盖行为的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Vue 测试...
    99+
    2024-04-02
  • 关于JS中的作用域中的问题思考分享
    目录作用域全局作用域作用域中的错误局部作用域with弊端数据泄露性能下降letconst作用域链闭包闭包对作用域链的影响匿名函数的赋值使用let作用域 作用域,也就是我们常说的词法作...
    99+
    2024-04-02
  • 3.关于python函数,以及作用域,递
    一.使用函数编程的好处。大大的提高了代码的重用行,重复的逻辑或者操作,可以定义到一个函数里,多次调用。下面是关于提高代码重用性的例子。现在老板让你写一个监控程序,监控服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时...
    99+
    2023-01-31
    函数 作用 python
  • 关于C++11中限定作用域的枚举类型的问题
    枚举类型是将一组有限的整数常量组织在一起用以描述变量可取值范围的一种数据类型。C++中有两种类型的枚举:不限定作用域的枚举类型和限定作用域的枚举类型。限定作用域的枚举类型是C++11...
    99+
    2024-04-02
  • 浅谈Nodejs中的作用域问题
    在JS中有全局作用域和函数作用域,而在Nodejs中也自己的作用域,分为全局作用域(global)和模块作用域。 js作用域: 以前学js的时候我们的全局对象是window,如: var a = 10;...
    99+
    2022-06-04
    浅谈 作用 Nodejs
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作