vue2项目升级到vue3经历分享4

后端重构,如果接口做好抽象封装,只需要考虑jar之间的兼容性问题,jdk版本不变,基本不用做太大的调整,但是前端就不一样,除了vue框架本身,css的调整,改起来更是让人头疼。前面写了vue2项目升级到vue3经历分享1,vue2项目升级到vue3经历分享2,vue2项目升级到vue3经历分享3,因为没有改造完,于是又写了一篇。还有7天时间,希望能顺利推进。
1 el-table-column外层不能加span
很奇怪,为什么只有两列,其他的不见。
1
检查代码,第一个不规范的地方,为何el-table-column外层多了一个<span>,这个再新框架里面直接就显示不了,更为严谨。
1
去掉之后,列出来了,说明一个问题el-table-columnel-table中很重要,列存在才可以显示。
1
element-ui中这么写可以,但是element-plus中,这种外面加<span>就不规范了。
1
一般情况下vue2使用Element UI这个组件库,表格组件的插槽的话一般都是使用v-slot,而vue3使用Element Plus组件库,表格组件中插槽一般为#default,不过不改,也能运行。调整后,问题解决。
1

2 $event.target使用问题
下面的代码,运行后提示 TypeError: Cannot read properties of undefined (reading 'target')

<el-table-column prop="remark" label="备注" show-overflow-tooltip min-width="120">
          <template #default="scope">
            <span v-show="!scope.row.isEditCell" style="cursor:pointer">{
  
  {scope.row.remark}}
            </span>
            <el-input v-show="scope.row.isEditCell" v-model="scope.row.remark" @blur="cellBlur(scope.row,scope.column)"  @focus="cellFocus(scope.row)" :ref="'remark'+scope.row.id" @keyup.enter.native="$event.target.blur"></el-input>
          </template>
        </el-table-column>

根据文心一言的指导,调整后代码如下,如此界面可以出来了。

<el-table-column prop="remark" label="备注" show-overflow-tooltip min-width="
### Vue 2 升级Vue 3 的迁移指南与兼容性配置 #### 兼容构建的使用 Vue 3 提供了一种兼容构建的方式,允许开发人员在 Vue 3 中启用兼容模式。这种模式支持大多数 Vue 2 的语法结构,从而帮助大型项目逐步迁移到 Vue 3[^1]。通过这种方式,团队可以先将项目运行在 Vue 3 上,再逐渐替换掉不兼容的部分。 #### 响应式系统的调整 从 Vue 2Vue 3,响应式系统经历了显著变化。Vue 3 使用 Proxy 对象替代了 Vue 2 中基于 Object.defineProperty 的实现方法。这一改进不仅提升了性能,还解决了许多 Vue 2 存在的局限性,比如无法检测数组索引变更等问题[^1]。因此,在迁移过程中需要注意这些差异可能带来的影响。 #### 新特性引入 Vue 3 推出了 Composition API 和其他新功能,如 Teleport、Fragments 等。尽管 Options API 被继续保留下来以便于过渡期使用,但推荐学习并采用 Composition API 来重构组件逻辑[^3]。这有助于更好地组织复杂业务场景下的代码,并提高可维护性和复用率。 #### 实际操作流程建议 为了顺利地完成从 Vue 2Vue 3升级工作,以下是几个重要环节及其注意事项: - **前期准备** - 审查现有依赖项以及插件是否已更新支持 Vue 3 版本。 - 测试当前应用是否存在大量自定义指令或者特殊处理逻辑需特别关注其适配情况。 - **执行迁移** - 启动 Vue 3 兼容模式作为初始阶段,观察是否有明显错误发生。 - 针对发现的问题逐一解决,优先考虑官方文档中的最佳实践方案指导修改相应部分。 - **验证与优化** - 彻底测试整个应用程序的功能完整性,确保所有预期行为正常运作无误。 - 结合新版框架特点进一步精简冗余代码片段提升整体效率表现。 ```javascript // 示例:简单展示如何初始化一个带有兼容性的 Vue 应用程序 import { createApp } from &#39;vue&#39;; import App from &#39;./App.vue&#39;; const app = createApp(App); app.config.compatConfig = { MODE: 3, // 设置为完全兼容模式 (默认值是0) }; app.mount(&#39;#app&#39;); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

warrah

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值