将图像源传递到 Vue.js 中的作用域插槽

Posted

技术标签:

【中文标题】将图像源传递到 Vue.js 中的作用域插槽【英文标题】:Passing an image source to a scoped slot in Vue.js 【发布时间】:2020-11-13 16:43:09 【问题描述】:

我迷路了,我已经阅读了有关插槽的文档并查看了一些示例,但我现在没有点击。

我不知道如何在插槽内将图像源传递给<img :src="">

相关 Blade.Php 文件:

<image-upload>
    <template v-slot:completed-crop-preview >
        <div class="mb-2 flex space-x-2">
            <img :src="image" class="mb-2 w-16 h-16 rounded-full border-como border-2 border-dashed"
            >
        </div>
    </template>
</image-upload>

相关的 Vue.js 模板:

<div>
    <slot name="completed-crop-preview" v-bind:image="imagePreview">
    </slot>
</div>

根据我的开发人员工具,imagePreview 设置得很好,并且在我将预览移动到插槽之前它确实工作得很好。

【问题讨论】:

文件 Blade.phpBlade.phpblade.php(如果文件名的大小写很重要) )?它有标准名称吗?该文件的实际名称是什么? 刀片文件为edit.blade.php,vue文件为image-upload.vue。他们似乎合作得很好,因为除了 slot imagePreview 是一个 url 还是一个对象? imagePreview 是一个 url - 确切地说是 base64 【参考方案1】:

您可以通过以下方式接收插槽道具:

<image-upload>
    <template v-slot:completed-crop-preview="image" >
        <div class="mb-2 flex space-x-2">
            <img :src="image" class="mb-2 w-16 h-16 rounded-full border-como border-2 border-dashed"
            >
        </div>
    </template>
</image-upload>

【讨论】:

以上是关于将图像源传递到 Vue.js 中的作用域插槽的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js 源码分析(二十六) 高级应用 作用域插槽 详解

vue2.1.x 新增作用域插槽

Vue.js(17)之 插槽

slot 插槽的作用域用法(摘自vue.js 官网)

新版vue作用域插槽的使用

Vue的作用域插槽