在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 安全ysoserial URLDNS利用链分析 2023-06-30
- java注解处理器学习在编译期修改语法树教程 2023-05-23
- Java数据结构之顺序表的实现 2022-09-03
- java – 尝试传递自定义oracle类型对象映射时无效的名称模式 2023-10-29
- Spring注解驱动之ApplicationListener异步处理事件说明 2023-06-05
- Spring循环依赖的解决方法详解 2023-04-12
- spring boot集成smart-doc自动生成接口文档详解 2023-05-24
- Java实现简单QQ聊天工具 2023-05-18
- java日期时间格式化@JsonFormat与@DateTimeFormat的使用 2023-04-17
- Java如何构造DSL方法重构 2023-02-19
