Vue.js有没有像JQuery的$('#id')
一样缩写为document.getElementById('#id')
的简写方式?
如果有,文档中在哪里可以找到此类信息和其他相关资料?
Vue.js有没有像JQuery的$('#id')
一样缩写为document.getElementById('#id')
的简写方式?
如果有,文档中在哪里可以找到此类信息和其他相关资料?
Vue 2中没有简便的方法。
Jeff的方法在Vue 2中似乎已经过时了。
这里是另一种实现目标的方法。
var app = new Vue({
el:'#app',
methods: {
showMyDiv() {
console.log(this.$refs.myDiv);
}
}
});
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<div id='app'>
<div id="myDiv" ref="myDiv"></div>
<button v-on:click="showMyDiv" >Show My Div</button>
</div>
您可以使用指令v-el
来保存一个元素,然后在以后使用它。
<div v-el:my-div></div>
<!-- this.$els.myDiv --->
编辑:这在Vue 2中已经被废弃,请参见胡亚雄的答案。
尽量不要通过直接引用DOM来进行DOM操作,这样会有很多性能问题,而且当我们尝试直接访问DOM时,事件处理变得更加棘手。相反,使用数据和指令来操作DOM。
这将使您对操作有更多的控制,也能够以模块化格式管理功能。
Vue.util.query
。它实际上只是document.querySelector
的封装,但长度只有14个字符,比后者的22个字符要短,技术上更短。此外,它还具有一些错误处理功能,以防要查找的元素不存在。Vue.util
的官方文档,但这是函数的整个源代码:function query(el) {
if (typeof el === 'string') {
var selector = el;
el = document.querySelector(el);
if (!el) {
({}).NODE_ENV !== 'production' && warn('Cannot find element: ' + selector);
}
}
return el;
}
代码库链接: Vue.util.query
<script setup>
import { ref, onMounted } from 'vue'
// declare a ref to hold the element reference
// the name must match template ref value
const input = ref(null)
onMounted(() => {
input.value.focus()
})
</script>
<template>
<input ref="input" />
</template>
ref
引用元素时,无需使用id
。 - GullerYA