javascript - 根据文档,如何与 vuejs 插槽正常执行的操作相反?
问题描述
在阅读了有关插槽的文档后,我并没有真正理解它们为什么有用,因为它们的功能似乎与我需要做的完全相反。
对于那些熟悉 ASP.NET 的人来说,我真正想要的是一个@section
. 那就是我在某个组件中定义了我的主页布局,并且在该组件中,我想控制子级中的一小部分,其中标记的层次结构并不容易。
我想在我的应用程序中使用与文档中基本相同的标记:
<div class="container">
<header>
<slot name="header"></slot>
</header>
<main>
<slot></slot>
</main>
<footer>
<slot name="footer"></slot>
</footer>
</div>
问题是我希望它存在于我的更高级别的组件中,然后在孩子中我想指定标题中的内容,例如:
<template>
<div>
<h1 slot="header">Name Of This Page {{ DataFromChildContext }}</h1>
<div id="remainder-of-child">
<!snip...-->
</div>
</div>
</template>
文档很清楚,这在 PARENT 中:
为了给命名槽提供内容,我们可以在父元素上使用 slot 属性:
强调我的
我是在叫错树还是有办法使用原生 VueJS 功能来完成这项工作?我想定义子中插槽的内容和父中的插槽空间。
解决方案
插槽提供了一种更简单的方法来创建可重用的组件。例如,一个模态,您可以在其中定义标题和正文,或其他一些 ui 小部件,如自定义按钮。
Vue(和其他 FE/JS 框架)的设计是数据驱动的,数据自上而下流动。
听起来您正在寻找的是,源自底部的操作/数据会影响顶层的更改。这样做的方法是使数据在顶层可用。有一些插件可以帮助解决这些情况,例如 vuex 和 route。Vuex 提供了一个全局可访问的 store,因此一个组件可以进行更改,而另一个组件可以监听该更改,而关系是什么并不重要。路由器用于管理页面之间的导航,并允许轻松定义应在模板上下文中显示的组件。您也可以创建自己的实现,使用侦听器和发射、全局总线,甚至将函数作为道具传递。
推荐阅读
- python - 熊猫:用替代值填充空列
- django - Django Rest Framework (DRF) 在 to_internal_value 函数中将 JSON 字段设置为 Empty
- ios - 我们可以在越狱设备上检索 iphone 用户密码吗?
- qt - 未找到 Centos 8 的 libmysqlclient.so.18
- reactjs - 用于分页的 Ag-grid 和句柄
- hololens - 是否可以通过 intune 在 hololens 2 上推送自定义文件?
- docker - 无法手动将 ssl certfile 安装到托管在 docker 容器中的 .app 域
- python - 使用条件循环并删除python中的特定行
- r - 在为多个搜索字符串搜索多个列时如何使用str_detect
- kubernetes - Pod 拥有比预期更多的资源