vue 自定义指令控制元素的显示隐藏,切换路由,刷新页面,添加指令的元素全部消失了? 怎么改呢? 使用方式 Vue.directive("bt-permission", { inserted: (el: any, binding: any, vnode: any) => { let btnPermissionList = vnode.context?.$store?.getters["userStore/getBtnAccess"]; if (btnPermissionList && typeof btnPermissionList === "string") { btnPermissionList = JSON.parse(btnPermissionList); } const [path, code] = binding.value; // 解构赋值获取参数 const formatPath = getLastPartAfterSlash(path); const hasPermission = btnPermissionList[formatPath]; let btnVisibility = true; if (hasPermission) { btnVisibility = hasPermission.some((item: any) => { return item.indexOf(code) !== -1; }); } else { btnVisibility = false; } if (!btnVisibility) { el.style.display = "none"; } }, });
Vue2.6.14 源码 core/vdom/patch.js 文件里 patchVnode 方法中,五种新旧节点比较的情况,其中一种旧节点有 text ,无新节点的情况,我无法模拟出具体的应用场景,请教下各位。 // 省去了部分代码 function patchVnode(oldVnode, vnode) { if (isUndef(vnode.text)) { if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, '') } } } 比如这个例子, {{name}} name 从有值到为空的情况,这匹配到的是 if (oldVnode.text !== vnode.text) { nodeOps.setTextContent(elm, vnode.text) }
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250111/63174019205f2093b0c11ceb130cdffe.png) export default { name:'Test', data(){ return{ tableData: [{ date: '2016-05-02', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄上海市普陀区金沙江路 1518 弄上海市普陀区金沙江路 1518 弄上海市普陀区金沙江路 1518 弄' }, { date: '2016-05-04', name: '王小虎', address: '上海市普陀区金沙江路 1517 弄' }] } }, methods: { }, } .is-tooltipStyle { background: #fff; color: #3759af; border: 1px solid rgb(158, 157, 157); font-size: 15px; }
import Tree from '@/components/tree/index.vue' import {GetOrganiztionalData,GetUserList} from '@/api/detailedList' export default { components: {Tree}, data() { return { data: [] } }, props: { treeUserInfo: Object }, created() { this.getOrganizational() }, methods: { // 辅助函数:根据部门ID找到对应的部门节点 findDepartmentNode(departmentId, nodes) { for (const node of nodes) { if (node.id === departmentId) { return node; } // 如果该节点有子节点,递归查找 if (node.children && node.children.length > 0) { const foundNode = this.findDepartmentNode(departmentId, node.children); if (foundNode) { return foundNode; } } } return null; // 如果找不到对应的部门节点 }, getOrganizational() { GetOrganiztionalData({}).then(res => { if(this.treeUserInfo.erpCode) { console.log('2222') this.data = [res.data] const id = this.treeUserInfo.erpDepCode this.getUserInfo(id) } else { this.data = [res.data] } }) }, getUserInfo(id) { const departmentNode = this.findDepartmentNode(id, this.data) if(!departmentNode.children) { this.$set(departmentNode, 'children', []) } const obj = { erpParentCode: id } let array = [] GetUserList(obj).then(res => { res.data.map(item => { array.push({ text:item.erpName, erpCode: item.erpCode }) }) departmentNode.children.push(...array) }) } }, } 这是我写的代码,走console.log('222')的时候,传递给子组件的 data数据没有,应该怎么解决 子组件代码 export default { data() { return { defaultCheckKeys: [] } }, props: { data: Array, keys:String }, methods: { handleExpandClick(node,data) { node.expanded = !node.expanded; } }
vue2中,vue-cli进行element-ui打包不放入check-vendor.js,而是单文件组件形式存在,比如el-input-683fb76c.js这种的,完全从check-vendor中抽离出来,而且是懒加载的形式。 也就是说: 如果home.vue组件使用了el-input组件,才会加载这个组件,而按照现在的打包方式,check-vendor会在页面一开始渲染就加载,包也很大,首页优化难做。 所以能不能通过vue-cli的webpack配置完成这个打包,求解 现在对一些组件使用注解魔法: let dNumber = ()=> import(/* webpackChunkName: "d-Number" */ '@/components/public/d-number'); 打包出来的文件名就是d-Number.js,但是不知道怎么抽离element-ui的每一个按需导入的组件,也形成懒加载的形式,或者check-vendor.js其实可以不存在,所有的资源都是懒加载形式
vue2,需要展示图表,使用的echart插件。 业务要求一个页面里要显示差不多三百个图表,每个图表平均大概是一千个数据。 前提是打开页面不卡,不会造成内存溢出,怎么才能做到? 目前自己没有好的思路,请教!!
Vue2,能不能将一个单独组件用ssr做? 现有一个Vue2的项目,存在一个报告的页面,是个单独组件(里面有接口和子组件),单独路由。现在有个需求就想着将这个页面用ssr去做,但是我看了官方文档,没有单独组件去做ssr的示例。大佬们,有谁这样做过啊,求解答!!! 我不想把整个项目变成ssr,这样成本太高了, 另外还有构建部署时的处理办法,也请帮忙解答下!
vue2项目前端,token的存放以及设置过期时间? 是选择存放在cookie中设置过期时间,还是存放在localStorage中设置过期时间,哪一个更符合需求,ps:前端初入行,没使用过cookie,不太了解,平时只用localStorage
前端埋点统计页面停留时长 最近在做埋点需求,需要统计页面的浏览时长,项目是使用的vue2+elementUI,普通的页面级浏览时长可以用路由守卫进行统计,但有些需求需要统计页面内tabs下的浏览时长,甚至是存在多层tabs的情况,想要写一个通用的方法,请求大家给予帮助,提供一些思路。 求求了,救救孩子吧。
"element-ui": "^2.15.10", "vue": "^2.6.11", "el-image" 使用 "lazy" 会无法正常显示, 在 "el-carousel"外面就是正常的。 这是什么原因造成的?如何解决呢?