问题一
element-plus 插件报错
Module not found: Error: Package path ./lib/locale/lang/zh-cn is not exported from package ...项目路径\node_modules\element-plus (see exports field in ...项目路径\node_modules\element-plus\package.json)
ERROR in ./src/plugins/element.js 2:0-48
Module not found: Error: Package path ./lib/theme-chalk/index.css is not exported from package ...项目路径\node_modules\element-plus (see exports field in ...项目路径\node_modules\element-plus\package.json)
@ ./src/main.js 5:0-51 7:0-18
ERROR in ./src/plugins/element.js 3:0-56
Module not found: Error: Package path ./lib/locale/lang/zh-cn is not exported from package ...项目路径\node_modules\element-plus (see exports field in ...项目路径\node_modules\element-plus\package.json)
@ ./src/main.js 5:0-51 7:0-18
方法
之前的代码
import ElementPlus from 'element-plus'
import 'element-plus/lib/theme-chalk/index.css'
import locale from 'element-plus/lib/locale/lang/zh-cn'
export default (app) => {
app.use(ElementPlus, { locale })
}
修改后的代码
import ElementPlus from 'element-plus'
import 'element-plus/theme-chalk/index.css'
import locale from 'element-plus/es/locale/lang/zh-cn'
export default (app) => {
app.use(ElementPlus, { locale })
}
总结
安装的element-plus 2.4.2 依赖, 里面部分代码路径更新了, 导致插件中的配置有问题
问题二
tab切换(VUE中el-tabs切换)echarts无法显示的问题
最近刚好项目里需要用到tab切换显示echarts,也同样出现了图表总是刷不出来的问题。对于这个问题我也是翻看了很多资料哈,其实最后都不是我想要的效果之类的,比如说v-if之类的,话不多说直接上我自己的解决办法
方法一
每次tab切换时我们只需要重新获取到该标签,然后调用一下resize就行
var echarts = require('echarts');
this.dataChart = echarts.init(document.getElementById('dvDataCharts'));
在el-tabs事件tabChange里引用echarts的resize(),前面一定要加this.$nextTick哦
方法二
var echarts = require('echarts');
this.dataChart = echarts.init(document.getElementById('dvDataCharts'));
handleClick (active) {
if(active.name == 'echart'){
this.$nextTick(()=>{
this.dataChart && this.dataChart.resize();
//echarts.getInstanceByDom(this.$refs.dvEchart).resize();
})
}
},
总结
每次tab切换时我们只需要重新获取到该标签,然后调用一下resize
问题三
vue3 reactive赋值问题
let obj = reactive({
name: 'zhangsan',
age: '18'
})
obj = {
name: 'lisi'
age: ''
}
// 上面这样赋值检测不到,因为响应式的是它的属性,而不是它自身
// 如需要对 reactive 赋值
// 方法1: 单个赋值
obj['name'] = 'lisi';
obj['age'] = '';
// 方法2:多包一层
let obj = reactive({
data: {
name: 'zhangsan',
age: '18'
}
})
obj.data = {
name: 'lisi'
age: ''
}
清空对象
// 错误示例
<template>
<div>{{ obj }}</div>
<button @click="click">点击</button>
</template>
<script setup>
import { reactive } from 'vue'
let obj = reactive({a: 111, b: 222})
const click = () => {
obj = {}
console.log(obj) // 这里打印的结果是正常的空对象
}
</script>
如何监听vuex中的变量参数变化,用watch!
watch: {
'$store.getters.vuex变量'(d) {
console.log(d);
},
},
import { mapGetters } from "vuex";
computed: {
...mapGetters(["vux变量"]),
},
watch: {
vux变量(d) {
console.log(d);
},
},