gpt4 book ai didi

vue.js - 将插槽从 Vue 2 迁移到 Vue 3

转载 作者:行者123 更新时间:2023-12-05 08:49:34 25 4
gpt4 key购买 nike

我大致跟着this article使组件可拖动:

<template>
<div ref="draggableContainer" class="draggable-container">
<div class="draggable-header" @mousedown="dragMouseDown">
<slot name="dragger"></slot>
</div>
<slot></slot>
</div>
</template>

然后在我的 Calculator.vue 组件中我有:

<template>
<Draggable class="calculator">
<input type="text" class="calculator-screen" slot="dragger" value="" />

<div class="calculator-keys">
<button type="button" class="operator" value="+">+</button>
<button type="button" class="operator" value="-">-</button>
<button type="button" class="operator" value="*">&times;</button>
<button type="button" class="operator" value="/">&divide;</button>

<button type="button" value="7">7</button>
<button type="button" value="8">8</button>
<button type="button" value="9">9</button>

<button type="button" value="4">4</button>
<button type="button" value="5">5</button>
<button type="button" value="6">6</button>

<button type="button" value="1">1</button>
<button type="button" value="2">2</button>
<button type="button" value="3">3</button>

<button type="button" value="0">0</button>
<button type="button" class="decimal" value=".">.</button>
<button type="button" class="all-clear" value="all-clear">AC</button>

<button type="button" class="equal-sign operator" value="=">=</button>
</div>
</Draggable>
</template>

这两个组件以不同的方式使用 slot,在 draggable-maker 中作为标签,在计算器中作为属性。但是,由于使用了 slot,这与 Vue 3 不兼容。这是我收到的错误:

errormsg

有人可以建议我如何解决这个问题吗?

最佳答案

slot 属性已被弃用,它被 v-slot:slotname 替换为命名插槽,您应该按如下方式使用它:

  <Draggable class="calculator">
<template v-slot:dragger>

<input type="text" class="calculator-screen" value="" />
<div class="calculator-keys">
<button type="button" class="operator" value="+">+</button>
<button type="button" class="operator" value="-">-</button>
<button type="button" class="operator" value="*">&times;</button>
<button type="button" class="operator" value="/">&divide;</button>

<button type="button" value="7">7</button>
<button type="button" value="8">8</button>
<button type="button" value="9">9</button>

<button type="button" value="4">4</button>
<button type="button" value="5">5</button>
<button type="button" value="6">6</button>

<button type="button" value="1">1</button>
<button type="button" value="2">2</button>
<button type="button" value="3">3</button>

<button type="button" value="0">0</button>
<button type="button" class="decimal" value=".">.</button>
<button type="button" class="all-clear" value="all-clear">AC</button>

<button type="button" class="equal-sign operator" value="=">=</button>
</div>
</template>
</Draggable>

不要忘记从 input 元素中删除 slot="dragger",您使用的语法已从 2.6.0 版开始弃用,其中将包含 v3

关于vue.js - 将插槽从 Vue 2 迁移到 Vue 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63749380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com