关于uniapp中vue3使用uni.createSelectorQuery()时的this指向及查询结果说明
微信小程序 关于uniapp中vue3使用uni.createSelectorQuery()时的this指向及查询结果说明
·
由于vue3中没有this,所以使用uni.createSelectorQuery().in(this)时,会报错
解决的办法就是使用getCurrentInstance()方法获取组件实例。
使用uni.createSelectorQuery()批量查询时,结果是按照查询的顺序返回的
完整的代码如下:
import { getCurrentInstance } from 'vue';
export default {
setup(){
const instance = getCurrentInstance(); // 获取组件实例
// 获取微信小程序dom元素
const getWXDom = () => {
let query = uni.createSelectorQuery().in(instance);
query.select('.drag_area').fields({ dataset: true, rect: true, id: true });
query.exec(eles => {
console.log(eles);
})
}
// 批量获取微信小程序dom元素
const getWXDoms = () =>{
let query = uni.createSelectorQuery().in(instance);
query.select('.drag_area').fields({ dataset: true, rect: true, id: true });
query.selectAll('.drag_line').fields({ dataset: true, rect: true, id: true, size: true });
// 批量获取dom元素时,结果是按照查询的顺序返回的
query.exec(eles => {
console.log(eles);
})
}
}
}
更多推荐
已为社区贡献2条内容
所有评论(0)