【发布时间】:2019-10-28 20:16:58
【问题描述】:
Vue 组件是否有一些内置的作用域机制,即 Vue 组件内的 html 元素的 id 属性的值可以在无需程序员努力的情况下唯一定义?
在下面的代码中,我创建了两个组件,并希望每个组件的行为彼此独立。所以,理想情况下,如果我点击每个按钮,每个按钮都需要打印出“foo”,但实际上并不是因为 id 的值是重复的。
<!DOCTYPE html>
<head>
<title></title>
</head>
<body>
<div id="app">
<my-comp></my-comp>
<my-comp></my-comp>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://unpkg.com/vue"></script>
<script>
Vue.component('my-comp', {
template: `
<div>
<button id="btn" @click="onClick">Click me</button>
<div id="pid"></div>
</div>
`,
methods: {
onClick(e) {
$('#pid').text("foo");
}
},
});
const vm = new Vue({
el: '#app',
data: () => ({}),
methods: {}
});
</script>
</body>
</html>
【问题讨论】:
-
你检查过这个包吗? npmjs.com/package/vue-uniq-ids
-
哦,非常感谢。这正好解决了这类问题。很高兴知道我并不孤单,有同样的问题。
-
好的,很高兴为您提供帮助!然后我将其发布为答案。
标签: vue.js attributes components