我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何使用Vue slot插槽

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何使用Vue slot插槽

这篇文章主要介绍“如何使用Vue slot插槽”,在日常操作中,相信很多人在如何使用Vue slot插槽问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Vue slot插槽”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    1、为什么使用slot

    1.1 slot(插槽)

    • 在生活中很多地方都有插槽,电脑usb的插槽,插板当中的电源插槽

    • 插槽的目的是为了让我们原来的设备具备更多的扩展性

    • 比如电脑的USB我们可以插入U盘,手机,鼠标,键盘等等

    1.2 组件中的插槽

    • 组件的插槽也是为了让我们的组件更具有扩展性

    • 让使用者决定组件内部的一些内容到底展示什么

    1.3 例子

    • 移动开发中,几乎每个页面都有导航栏

    • 导航栏我们必然封装成一个插件

    • 一旦有了这个组件,我们就可以在多个页面中复用了

    2、如何封装这类组件(slot)

    • 最好的封装方式就是将共性抽取到组件中,将不同的部分暴露为插槽

    • 一旦我们预留了插槽,就可以让使用者根据自己的需求,决定插槽中插入什么内容

    • 是搜索框,是文字,是按钮,由调度者自己决定

    3、 插槽的案例

    <div id="app">  <cpn><button>按钮</button></cpn>  <cpn><p>hello world</p></cpn>  <cpn><p>666</p></cpn></div><template id="cpn">  <div>    <h3>我是组件</h3>    // 插槽预留的位置,方便使用者自己填写    <slot></slot>  </div></template><script class="lazy" data-src="../js/vue.js"></script><script>  const app = new Vue({    el: "#app",    components: {      "cpn": {        template: `#cpn`,      }    }  })</script>

    上述代码干了以下事情:

    • 定义了子组件cpn,然后在子组件中预留了一个插槽,插槽的内容由用户填写

    • 父组件中使用了3次子组件,3个子组件分别给插槽填写了不同的内容

    最后展示效果如下:

     如何使用Vue slot插槽

    4、插槽默认值

    如果我们需要大量使用这个组件,而且组件预留的插槽,我们大多数都是填写的返回按钮,只有极少数填写其他的,那么这种情况就可以为插槽设置一个默认值

    <div id="app">  <cpn></cpn>  <cpn></cpn>  <cpn></cpn></div><template id="cpn">  <div>    <slot><button>返回</button></slot>  </div></template>

    我们在子组件中设置了一个默认值为返回按钮的插槽,那么父组件在使用时如果不填写任何内容,那么默认就是返回按钮

    5、具名插槽

    有时我们需要多个插槽。例如对于一个带有如下模板的组件:

    <template id="cpn">  <div>    <slot name="header"><span>头部</span></slot>    <slot name="main"><span>中间</span></slot>    <slot name="footer"><span>页脚</span></slot>  </div></template>

    我们在组件中预留了3个插槽,但是这里指定了3个名字,后续父组件使用v-slot指定name属性后就能填写自己的内容,比如如下代码

    <div id="app">  <cpn>    <template v-slot:header>      <p>header头部</p>    </template>    <template v-slot:footer>      <p>footer页脚</p>    </template>  </cpn></div>

    使用了cpn组件,然后指定了插槽name属性为headerfooter的内容,指定后自己填写的内容就会替换默认的内容。

    注意:这里的语法格式是固定的,必须在使用template标签上绑定v-slot:插槽的名字

    6、编译作用域

    通过外面传给组件的变量,在以后使用插槽的时候是不能使用的

    <div id="app">  <cpn v-show="isShow"></cpn></div><template id="cpn">  <p>hello</p></template><script class="lazy" data-src="../js/vue.js"></script><script>  const app = new Vue({    el: "#app",    data: {      isShow: true    },    components: {      "cpn": {        template: `#cpn`,        data(){          return{            isShow: false          }        }      }    }  })</script>

    上面我们定义了子组件cpn,子组件中有属性isShowapp实例中也定义了属性isShow,最后使用子组件cpn时使用了v-show,当值为true显示,值为false不显示
    问题:v-show中的isShow的值是实例中的true还是子组件中的false
    答案:是true,因为你使用的时候是在app实例范围内,所以isShow会去从实例中的data去查找,虽然你是在cpn子组件中绑定的,但是这里的cpn你只需要把他当做普通的标签即可,如果你想让isShow的值为false,那么你只需要在子组件的template模板中使用<p v-show="isShow">hello</p>

    7、作用域插槽

    默认在插槽中的代码只能使用全局Vue中的属性,如果想要使用自定义组件中的属性,那么需要在定义slot的时候使用v-bind来进行绑定。

    <div id="app">  <cpn>    <template v-slot:default="slot">      {{slot.data.firstName}}    </template>  </cpn></div><template id="cpn">  <div>    <slot :data="user">      {{user.lastname}}    </slot>  </div></template><script class="lazy" data-src="../js/vue.js"></script><script>  const app = new Vue({    el: "#app",    components: {      "cpn": {        template: `#cpn`,        data(){          return{            "user": {              "firstName": "甲",              "lastname": "壳虫"            }          }        }      }    }  })</script>

    上述代码做了如下几件事情:

    • 定义了子组件cpn,在子组件中定义了user

    • 在子组件cpn的模板的插槽中绑定了属性data,且插槽的默认值为user.lastname

    • html中使用了子组件,并使用v-slot绑定了插槽Prop对象,这样就可以通过对象名称.子组件中绑定的属性名称(slot.data),来访问子组件中的数据

    到此,关于“如何使用Vue slot插槽”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    如何使用Vue slot插槽

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

    下载Word文档

    猜你喜欢

    如何使用Vue slot插槽

    这篇文章主要介绍“如何使用Vue slot插槽”,在日常操作中,相信很多人在如何使用Vue slot插槽问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Vue slot插槽”的疑惑有所帮助!接下来,请跟
    2023-06-25

    vue架构插槽slot如何使用

    这篇文章主要介绍了vue架构插槽slot如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue架构插槽slot如何使用文章都会有所收获,下面我们一起来看看吧。1、直接使用新建组件 Article
    2023-06-29

    Vue中的插槽slot如何使用

    本篇内容主要讲解“Vue中的插槽slot如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue中的插槽slot如何使用”吧!1.什么是插槽插槽(slot)是 vue 为组件的封装者提供的能
    2023-07-05

    Vue中插槽Slot基本使用与具名插槽详解

    有时候我们希望在指定的位置输出我们的子元素,这时候具名插槽就排上了用场,这篇文章主要给大家介绍了关于Vue中插槽Slot基本使用与具名插槽的相关资料,需要的朋友可以参考下
    2022-11-13

    Vue深入理解插槽slot的使用

    最近被问起是否了解vue的插槽(slot),咋一想发现,似乎很少用到这玩意。所以整理了下slot的一些用法
    2022-11-13

    vue父子组件slot插槽的使用

    这篇文章主要介绍了vue父子组件slot插槽的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-13

    Vue中插槽slot有什么用

    这篇文章主要为大家展示了“Vue中插槽slot有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue中插槽slot有什么用”这篇文章吧。什么是插槽?我们知道在Vue中 Child 组件的标
    2023-06-15

    Vue中slot插槽有什么用

    小编给大家分享一下Vue中slot插槽有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.作用:让父组件可以向子组件指定位置插入html结构,也是一种组件间
    2023-06-25

    浅析Vue中插槽Slot的作用和具名插槽

    Vue中的插槽相信使用过Vue的小伙伴或多或少的都用过,但是你是否了解它的用法呢?本篇文章就为大家带来Vue中插槽Slot基本使用和具名插槽,希望对大家有所帮助!
    2022-11-22

    Vue插槽slot使用的方法是什么

    这篇文章主要介绍“Vue插槽slot使用的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue插槽slot使用的方法是什么”文章能帮助大家解决问题。何为插槽我们都知道在父子组件间可以通过v
    2023-07-05

    Vue3中slot插槽基本使用

    插槽slot可以说在一个Vue项目里面处处都有它的身影,比如我们使用一些UI组件库的时候,我们通常可以使用插槽来自定义我们的内容,这篇文章主要介绍了Vue3中slot插槽使用方式,需要的朋友可以参考下
    2022-11-13

    Vue插槽slot全部使用方法示例解析

    插槽就是子组件中的提供给父组件使用的一个占位符,用<slot></slot>表示,父组件可以在这个占位符中填充任何模板代码,如HTML、组件等,填充的内容会替换子组件的<slot></slot>标签,这篇文章主要介绍了Vue插槽的理解和使用,需要的朋友可以参考下
    2023-03-19

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录