vue.js - 使用 Vue 将道具从 Child 传递到插槽
问题描述
我一直在考虑将道具内容传递给孩子的插槽
这是我的解决方案:
<div id="app">
<example>
<template #example-body="{ exampleText }">
<p>{{ exampleText }}</p>
</template>
</example>
</div>
Vue.component('example', {
data () {
return {
exampleText: "This is a sample"
}
},
template: `
<div>
<slot name="example-body" v-bind:exampleText="exampleText" />
</div>`
})
new Vue({
el: '#app'
})
https://codepen.io/sirlouen/pen/OJWMRba
它有效,但我觉得它不够优雅。
我该如何改进它?
事实上,如果我是真诚的,我不明白为什么会这样。我一直在测试一百个选项,直到我让它工作,但不知道为什么,特别是模板中的 { }。
如果有人可以为我提供更多信息,那就太好了。
解决方案
最初你有:
<template #example-body="slotProps">
<p>{{ slotProps.exampleText }}</p>
</template>
但我们可以破坏 ES6 语法的对象:
<template #example-body="{ exampleText }">
<p>{{ exampleText }}</p>
</template>
推荐阅读
- inode - EXT2,解释inode表,块指针似乎没有意义
- java - Googledrive API:共享驱动器访问控制
- c# - Razor 模型绑定在 Post 方法的返回页面上失去价值
- micronaut - 如何增加 RxComputationalThread 池大小?
- c# - ildasm 转储比较 - 唯一的区别是图像库
- svg - SVG“设置”动画未按预期循环
- c++ - 如何使用构造函数(显式)将 int 类型转换为类?
- sql - 在不存在的地方插入多行
- javascript - 是否可以使用 Alpine.js 创建动态内联绑定?
- amazon-s3 - 将 AWS S3 中文件的 UTF 16 编码更改为 UTF 8 编码