在js文件中写el表达式取不到值的原因可能是因为js文件的加载顺序在vue组件实例挂载之前,解决方法一般有两种:使用Vue.mixin全局混入方法和使用this.$nextTick()方法。
在js文件中写el表达式取不到值的原因可能是因为js文件的加载顺序在vue组件实例挂载之前,解决方法一般有两种:使用Vue.mixin全局混入方法和使用this.$nextTick()方法。
使用Vue.mixin全局混入方法
- 首先在main.js中定义一个mixin,定义一个生命周期函数created,将所有需要共享的数据,例如公共的配置信息,挂到this.$options全局配置中,这样每个组件都可以通过this.$options访问到该对象。
Vue.mixin({
created: function () {
this.$options.sharedData = {
someValue: 'Any value you need'
};
}
});
- 在组件中使用时,直接调用this.$options.sharedData.someValue来使用。例如:
export default {
methods: {
showSomeValue() {
console.log(this.$options.sharedData.someValue);
}
}
};
使用this.$nextTick()方法
- 在mounted操作中使用定时器设置一段时间延迟,等待DOM操作完成,之后就可以使用el表达式。
export default {
mounted () {
setTimeout(() => {
// 获取组件中的el元素
const el = this.$el.querySelector('.el-table__body-wrapper')
console.log('el', el) // 输出为DOM元素
}, 0)
}
}
- 在mounted操作中使用this.$nextTick()方法等待DOM操作完成之后就可以使用el表达式。
export default {
mounted () {
this.$nextTick(() => {
// 获取组件中的el元素
const el = this.$el.querySelector('.el-table__body-wrapper')
console.log('el', el) // 输出为DOM元素
})
}
}
以上两种方法都可以解决js文件中使用el表达式无法获取数据的问题,通过全局混入方法和this.$nextTick()方法可以在mounted完成渲染之后,获取到正确的el表达式值。
沃梦达教程
本文标题为:在js文件中写el表达式取不到值的原因及解决方法
基础教程推荐
猜你喜欢
- 理解Java CompletableFuture 2023-10-08
- Java中实现将jar包内文件资源释放出来 2023-04-17
- springboot中如何通过main方法调用service或dao 2022-10-30
- java – sql查询中的外部/重音字符 2023-11-09
- SpringBoot浅析安全管理之OAuth2框架 2023-04-12
- Java关键字之this用法详解 2023-07-14
- Java中token的存储和获取实例代码 2023-04-17
- 一文搞懂Java中的注解和反射 2023-01-23
- 利用Java工具类Hutool实现验证码校验功能 2023-06-11
- 小项目改造快速引入 mybatis的流程分析 2022-11-20