在一个页面上多次添加一个组件
Add one component multiply times on one page
如何在一页上多次放置相同的组件?我有输入组件,可以获取道具并做一些事情。我需要在一页中放置多个输入,我认为我可以只 copy/paste 我的组件,但我收到错误,因为 vue 认为我的所有组件都是相同的 dom 元素。我该如何放置它们?
index.vue
<template>
<div class="container">
<Input name="name" />
<Input name="surname" />
<Input name="pass" />
</div>
</template>
Input.vue
<template>
<div class="inputs">
<label class="inputs__label" :for="name">Имя</label>
<input
v-click-outside="moveR"
class="inputs__input"
:name="name"
type="text"
@click="moveL($event.target)"
/>
</div>
</template>
<script>
import vClickOutside from 'v-click-outside'
export default {
directives: {
clickOutside: vClickOutside.directive,
},
props: ['name'],
methods: {
moveR(e) {
console.log(e)
e.classList.add('inputs__lable_r')
},
moveL(e) {
console.log(e)
e.classList.remove('inputs__lable_r')
},
},
}
</script>
我很抱歉,我对 Vue 的了解不多,而且 google 没有提供我需要的信息
我在 nuxt 上写,但我认为它与 vue
有同样的问题
这是应该的
moveR(e) {
e.target.classList.add('inputs__lable_r')
},
您遗漏了一个 e.target
,因此它不是针对 HTML 元素而是事件。
如何在一页上多次放置相同的组件?我有输入组件,可以获取道具并做一些事情。我需要在一页中放置多个输入,我认为我可以只 copy/paste 我的组件,但我收到错误,因为 vue 认为我的所有组件都是相同的 dom 元素。我该如何放置它们?
index.vue
<template>
<div class="container">
<Input name="name" />
<Input name="surname" />
<Input name="pass" />
</div>
</template>
Input.vue
<template>
<div class="inputs">
<label class="inputs__label" :for="name">Имя</label>
<input
v-click-outside="moveR"
class="inputs__input"
:name="name"
type="text"
@click="moveL($event.target)"
/>
</div>
</template>
<script>
import vClickOutside from 'v-click-outside'
export default {
directives: {
clickOutside: vClickOutside.directive,
},
props: ['name'],
methods: {
moveR(e) {
console.log(e)
e.classList.add('inputs__lable_r')
},
moveL(e) {
console.log(e)
e.classList.remove('inputs__lable_r')
},
},
}
</script>
我很抱歉,我对 Vue 的了解不多,而且 google 没有提供我需要的信息 我在 nuxt 上写,但我认为它与 vue
有同样的问题这是应该的
moveR(e) {
e.target.classList.add('inputs__lable_r')
},
您遗漏了一个 e.target
,因此它不是针对 HTML 元素而是事件。