在作用域插槽内使用 v-model [英] Using v-model inside scoped slots

查看:63
本文介绍了在作用域插槽内使用 v-model的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用 Vue 2.6.9 和新的 v-slot 语法.我想访问与插槽内的 v-model 交互.问题是在槽内显示数据有效,但使用 v-model 不行.这是我的代码:

Vue.component('base-test', {模板:`<div><slot :foo="foo" :foo2="foo2"></slot>

`,数据(){返回{foo: '酒吧',foo2: '酒吧 2'}}});//山新的 Vue({el: '#app'});<div id="应用程序"><base-test v-slot="sp"><div>foo2 是 {{ sp.foo2 }}</div><input type="text" v-model="sp.foo"><div>foo 是 {{ sp.foo }}</div></base-test>

Codepen

我的问题是如何从插槽内与组件数据进行交互.

解决方案

关于 this 问题,Vue 核心成员说你不应该修改你传递给插槽的数据.

您应该传递一个方法来更改值.如果您同意这一点,请遵循 this 答案.


但是,有一种利用 Javascript 参考值的棘手方法

不是传递原始值(不会具有反应性),而是传递一个反应性对象,该对象将保持其反应性(例如 Observer、reactiveGetter、reactiveSetter).

子组件