程序员好web前端分享通过带Vue槽的组件传递HTML内容
时间:2023-04-02 20:28:17
HTML
程序员好web前端分享通过带Vue槽的组件传递HTML内容本文将向大家介绍如何使用Vue槽传递父组件的数据到Vue.js中的子组件。本文适合所有阶段的开发人员——包括初学者——尽管在完成本教程之前有一些先决条件。您的计算机上需要以下内容:?安装了Node.js。您可以通过在终端/命令提示符中运行此命令来验证您的版本:node-v?代码编辑器;我强烈推荐VisualStudioCode(个人感觉)?最新版本的Vue,在你的机器上全局安装?在你的电脑上安装Vue-cli。为此,首先卸载旧的vue-cli版本:npmuninstall-gvue-cli然后,安装新的:npminstall-g@vue/cliVue官网有完整的教程什么是Vue槽? Vueslot是Vue团队创建的一个Vue模板元素,用于提供模板内容分发的平台。它是受WebComponents草案规范启发的内容交付API的实现。使用Vue插槽,您可以在项目中的各个组件之间传递或分发HTML代码。 内容分发很重要,原因有很多,其中一些与结构有关。使用Vue插槽,您可以构建一个HTML界面(与TypeScript一样),然后您可以将其用作通过模板注入构建组件的指南。它是一种可扩展且高效的解决方案,用于将模板代码从一个组件传递到另一个组件。 内容的定位是Vue插槽的另一个重要用例。您可以只创建一个模板,然后使用另一个组件或父组件来准确安排该模板在您的UI中的显示方式。 如果你了解Vueslots,你可能想知道props和slots是否做同样的事情。嗯,这些工具或平台的核心思想是鼓励资源的可重用性和效率。考虑到这一点,插槽和道具是相似的。 道具处理从组件到组件的数据对象传递,但插槽处理传递模板(HTML)内容而不是组件。但是,作用域插槽就像道具一样;这将在本教程中清楚地解释。Vue插槽语法 使用插槽,您的子组件充当您希望内容排列方式的界面或结构。它看起来像这样:
父组件(要注入子组件的HTML内容所在的位置)可能像这样:HelloWorld!
此组合将返回如下所示的UI:HelloWorld!
请注意它自己的插槽如何充当在何处以及如何注入内容的指南-这是中心思想。命名槽 Vue允许组件有多个槽,这意味着你可以有任意数量的槽。要对此进行测试,请将此新代码块复制到您的文件中:test.vue
如果你运行应用程序,你可以看到helloworld打印了3次。所以如果你想添加更多的内容——比如一个标题、一个带有文本的段落,然后是一个无序列表——Vue允许我们命名范围,以便它可以识别要显示的特定范围。命名文件中的插槽将如下所示:test.vue
现在您还必须标记HTML元素。将其复制到文件的模板部分:app.vueHelloworld我是段落文字你好,我是列表项 V-slotssyntaxVue2.6版本发布时,提供了更好的语法,用于在名为v-slot的子组件中引用插槽名称,即替换原有的插槽语法.因此,不是像这样的槽的父组件模板:
世界您好!从3.0版本开始(应该年底前发布),现在看起来是这样的:
Helloworld!
请注意,字符串的微小变化是,除了插槽对之外,还有一个主要变化:v-slots只能在模板中定义,而不能在任何HTML元素中定义。这是一个很大的变化,因为它质疑命名插槽的可用性,但在撰写本文时插槽仍然是文档的一部分。v-slotScopedslots想象一个场景,Vueslots也可以从父组件访问子组件中的数据对象——一个具有props能力的slot。为了说明这一点,继续通过将以下代码块复制到文件中来在子组件中创建数据对象:test.vue
就像普通的道具一样,v-bind指令用于将数据中的球队与父组件中的道具引用绑定。打开文件并将以下代码块复制到模板部分:app.vueHello{{team}}
如果你运行应用程序,你会看到数据对象被成功传递到父组件。 介绍了Vue.js中的插槽及其对内容注入的重要性。您了解它,甚至如何为一个组件设置多个插槽。您还看到了插槽如何通过作用域充当道具。