vue.js是否像JQuery的document.getElementById('#id')
一样有$('#id')
的简写?
如果是这样,文档中对此的引用在哪里,以便我可以找到其他信息?
答案 0 :(得分:66)
在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>
答案 1 :(得分:10)
您可以使用指令v-el
保存元素,然后再使用它。
<div v-el:my-div></div>
<!-- this.$els.myDiv --->
修改:这是deprecated in Vue 2,请参阅胡亚雄回答
答案 2 :(得分:5)
您可以在API:
中的这两个页面的组合中找到答案ref用于注册对元素或子元素的引用 零件。该参考将在父母下注册 component的$ refs对象。如果在普通的DOM元素上使用,那么 引用将是该元素
包含已注册ref的子组件的对象。
答案 3 :(得分:5)
尝试不直接引用DOM来进行DOM操作,它会产生很多性能问题,当我们尝试直接访问DOM时,事件处理变得更加棘手,而是使用数据和指令来操作DOM。
这将使您可以更好地控制操作,您还可以以模块化格式管理功能。
答案 4 :(得分:4)
如果你试图获得一个元素,你可以使用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