vue中插槽作用域的使用

一、插槽作用域

  1、简单来说就是带参数的插槽;

  2、使用方式:

    在组件标签内部加一个template标签 在template标签上加一个属性scope 值随意书写

    在组件内部用slot进行接受,如果给slot加一个自定义属性,那么在组件标签的template的scope上面就可以进行接受到。

  3、例父组件 App.vue 中

<template>
    <div id="app">
        <header-com>
           <template scope="data">
                <h2>{{data.mytitle}}</h2>
           </template>
        </header-com>

    </div>
</template>

  子组件 one.vue 中

<template>

    <div>

        <header>vue</header>
        <slot :mytitle="message"></slot>
    </div>
</template>

<script>
export default {
  data() {
    return {
      message: "vue马上要改版本了,纠结。。"
    };
  },

}
</script>

<style>
</style>

原文地址:https://www.cnblogs.com/-roc/p/9900240.html

时间: 2024-11-02 06:24:35

vue中插槽作用域的使用的相关文章

vue中插槽

当定义完一个组件后,可能在使用时还需要往这个组件中插入新的元素或者文本.这个时候就可以使用插槽来完成. 在定义`template`时,在需要插入的地方使用`<slot></slot>`标识出来.在使用时只需将传递的值放在定义的组件标签包裹起来即可. 插槽可以设置默认值.在定义template时,用`slot`标签包裹起来即可,当没有传递值时就使用默认值,但传值后,则使用新的值. 插槽当中的变量是从父组件的变量中读取的,而非从该组件中读取.也就是说:在插槽中使用`{{  }}` 定义

Vue中插槽slot的使用

插槽,也就是slot,是组件的一块HTML模板,这块模板显示不显示.以及怎样显示由父组件来决定. 实际上,一个slot最核心的两个问题在这里就点出来了,是显示不显示和怎样显示. 由于插槽是一块模板,所以,对于任何一个组件,从模板种类的角度来分,其实都可以分为非插槽模板和插槽模板两大类. 非插槽模板指的是html模板,比如‘div.span.ul.table’这些,非插槽模板的显示与隐藏以及怎样显示由组件自身控制: 插槽模板是slot,它是一个空壳子,因为它的显示与隐藏以及最后用什么样的html模

Vue组件之作用域插槽

写作用域插槽之前,先介绍一下Vue中的slot内容分发: 如果<child-component></child-component>标签之间没有插入那两个p标签的话,页面会显示子组件模板中定义的"<p>父组件如果没有插入内容,我将被显示</p>"这一则内容,但如果<child-component></child-component>标签之间有插入内容的话,则子组件模板中的<slot></slot&

vue中的插槽slot理解

本篇文章参考赛冷思的个人博客 1.函数默认传参 在我们写js函数我们的可能会给他们一个默认的参数,写法是 function show(age,name){ var age = age || 20; var name = name || 张三; console.log(age,name); } show(); // 20,张三 show(18,"命名") // 18,明明 如果用户不传入参数,那么会输出默认值,如果用户传入,会输出传入的值,这种写法很灵活 vue中的组件,也可以有默认的模

深入理解vue中的slot与slot-scope

<template> <div class="father"> <h3>这里是父组件</h3> <child> <div class="tmpl"> <span>菜单1</span> <span>菜单2</span> <span>菜单3</span> <span>菜单4</span> <span

Vue slot 插槽

Vue  的插槽感觉上是一个组件函数,和函数一样进行参数的传递来改变组件的据题内容. 使用指令:v-slot //插口的基本使用 <body> <div id="app"> <!-- 传入元素参数 --> <login><span>demo</span></login> </div> </body> <template id="login"> &l

理解Vue中的Render渲染函数

VUE一般使用template来创建HTML,然后在有的时候,我们需要使用javascript来创建html,这时候我们需要使用render函数.比如如下我想要实现如下html: <div id="container"> <h1> <a href="#"> Hello world! </a> </h1> </div> 我们会如下使用: <!DOCTYPE html> <html

better-scroll在vue中的坑

在我们日常的移动端项目开发中,处理滚动列表是再常见不过的需求了,以滴滴为例,可以是这样竖向滚动的列表,如图所示: 也可以是横向滚动的导航栏,如图所示: 可以打开"微信 -> 钱包->滴滴出行"体验效果. 我们在实现这类滚动功能的时候,会用到我写的第三方库,better-scroll. 什么是 better-scroll better-scroll 是一个移动端滚动的解决方案,它是基于 iscroll 的重写,它和 iscroll 的主要区别在这里.better-scroll

vue中关于v-for性能优化---track-by属性

vue中关于v-for性能优化---track-by属性 最近看了一些react,angular,Vue三者的对比文章,对比来说Vue比较突出的是轻量级与易上手. 对比Vue与angular,Vue有更好的性能,非常容易优化,因为他不用脏检查.而angular中,watcher越来越多的时候整理代码性能就会变得越来越慢,因为作用域中的每一次变化,所有的watcher都需要重新计算.并且,如果一些watcher触发另一个更新,脏检查循环可能要运行多次.angular用户常常需要头疼解决脏检查循环机