在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.sql.SQLException:客户端检出Connection的尝试已超时 2023-10-30
- SpringBoot整合atomikos实现跨库事务的详细方案 2022-12-02
- MyBatis-Plus逻辑删除和字段自动填充的实现 2023-04-06
- springboot中如何通过main方法调用service或dao 2022-10-31
- Mybatis useGeneratedKeys参数用法及问题小结 2022-11-15
- Java实现5种负载均衡算法(小结) 2022-12-02
- 关于springboot配置文件密文解密方式 2023-04-16
- java内存泄漏的分析方法 2023-09-01
- SpringBoot实现自定义事件的方法详解 2023-01-24
- Spring Boot框架中的@Conditional注解示例详解 2023-05-18