当前位置: 首页 > news >正文

传统web项目,vue开发实践篇01

背景描述

        从业10年web开发,对于html、Jquery、JavaScript,不能说精通。但基础、深层次的使用,基本没啥问题。19年,公司有vue的项目,也了解了下,说实话,我没放在眼里。想研究,随时可以研究。后来,也简单看了一些书籍和资料,一直没有机会实战。这不,机会来了。

        公司一个项目,里边有一些复杂页面交互模块,同时要求美观,一直都是前端同事维护,也算是集成了vue的使用。最近需求来了,来了一个新同事,本来他一个人来搞,结果他评估了一个月,理由是对前端不熟悉(就是不分离的这一套)。领导考虑就安排来了,我来搞页面,他搞服务端代码。这不是尴尬吗?本来一个人搞定,硬生生拆2个人做。

        索性直接上vue吧,开干。

资源下载

Element - The world's most popular Vue UI framework

https://cdn.jsdelivr.net/npm/vue/dist/

所遇问题

图标缺失
<!-- 引入样式 -->
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script><script type="text/javascript" src="/vue/axios@1.11.0/dist/axios.min.js"></script>

本来引入在线的,部署到服务器发现链接没法请求,报错。恩,一般来说,服务器访问外链确实有风险,我直接下载了这两个文件,到项目目录下。解决,但是一些字体样式也没了,不明白为什么。问了问kimi,说依赖2个字段,也一起下载就完了。同时改一下原来的js

@charset "UTF-8";
@font-face {font-family: element-icons;src: url('../../../fonts/element-icons.woff') format("woff"), url('../../../fonts/element-icons.ttf') format("truetype");font-weight: 400;font-display: "auto";font-style: normal
}

表单提交校验
-- 方法1
// 添加弹框保存方法
addFormSubmit(){const fn = (valid) => {if (valid) {this.addFormSubmitAct();} else {console.log('error submit!!');return false;}}this.$refs.addEleForm.validate(fn);
},方法2
addFormSubmit(formName) {
this.$refs.addEleForm.validate((valid) => {if (valid) {this.addFormSubmitAct();} else {console.log('error submit!!');return false;}
});
},官网demo
submitForm(formName) {
this.$refs[formName].validate((valid) => {if (valid) {alert('submit!');} else {console.log('error submit!!');return false;}
});
},  

方法2是参考demo写的,什么问题呀,方法1是前端同事写的,试了半天反正好使。问问kimi吧。

嗨,版本问题吧。不纠结。

区别只有一点:
方法1 在调用 this.$refs.addEleForm.validate 时,传入的回调 fn 是一个 具名函数。
方法2 在调用 this.$refs.addEleForm.validate 时,传入的回调是一个 箭头函数表达式。
而 Element-UI 的 validate 方法在实现里会 把回调函数的形参个数(length)作为判断条件。
它大致是这样写的(伪代码):不是写法本身有对错,而是 Element-UI 早期版本对“箭头函数”兼容不好。
升级到 Element-UI ≥2.5.0 以后,官方已修复该问题,方法2 也能正常工作。
如果暂时不能升级,只要把箭头函数换成具名/匿名普通函数即可:版本:2.15.14
el-container加div样式

花了一个布局,样式

                            <el-container v-loading="peopleDetailLoading"><div style="width: 100%;"><el-row style="margin-bottom: 15px; clear: both;"><el-col :span="24"><div class="grid-content"><el-table :data="peopleDetailInfo.detectionOrderList"><el-table-column property="name" label="名称"></el-table-column><el-table-column property="customerOrderNo" label="订单编号"></el-table-column><el-table-column property="orderNo" label="查看报告"></el-table-column></el-table></div></el-col></el-row><el-row style="clear: both;"><el-col :span="12"><div class="grid-content doing-info"><div><span>做题情况:{{ peopleDetailInfo.questionBankNames || '-'}}</span></div><div class="stats" v-if="peopleDetailInfo.questionBankNames"><div class="stat-item"><p class="stat-value">{{ peopleDetailInfo.undoTopicCount || '-'}}</p><p class="stat-label">未做数量</p></div><div class="stat-item"><p class="stat-value">{{ peopleDetailInfo.doneTopicCount || '-'}}</p><p class="stat-label">已作数量</p></div><div class="stat-item"><p class="stat-value error">{{ peopleDetailInfo.wrongCount || '-'}}</p><p class="stat-label">错误数量</p></div><div class="stat-item"><p class="stat-value">{{ peopleDetailInfo.correctRateDesc || '-'}}</p><p class="stat-label">正确率</p></div></div></div></el-col><el-col :span="12"><div class="grid-content"><div class="homework-mind"><p>作业心得{{ peopleDetailInfo.selfAssessment}}</p></div></div></el-col></el-row></div></el-container>

如果没有dv这个层级,就会这样。

思考总结

这些前端框架,很不错。很丝滑,再也不用考虑一些布局,交互上的效果。官网样例demo也很充足,直接copy,直接用,调整下数据就行。

最大的特点是,页面渲染和数据是分离的,定义变量作为交互。其他完全不用考虑,赞

http://www.xdnf.cn/news/1422757.html

相关文章:

  • 微服务Docker-compose之若依部署
  • 视频提取文字用什么软件好?分享6款免费的视频转文字软件!
  • apipost 8.x 脚本循环调用接口
  • 云手机为什么会受到广泛关注?
  • 单链表的基本原理与实现
  • 深入掌握 Flask 配置管理:从基础到高级实战
  • uniapp使用uview UI,自定义级联选择组件
  • 六、练习3:Gitee平台操作
  • RSA的CTF题目环境和做题复现第1集
  • shell——函数与数组
  • 华东制造企业推荐的SD-WAN服务商排名
  • java中常见的几种排序算法
  • 毕业设计:丹麦电力电价预测预测未来24小时的电价pytorch+lstm+历史特征和价格+时间序列 电价预测模型资源 完整代码数据可直接运行
  • js脚本和ts脚本相互调用
  • 虚拟机一插SD卡就蓝屏,导致整个电脑系统蓝屏怎么办
  • 一、SVN与svnbucket.com常见问题解答
  • PTP高精度时间同步的核心:E2E与P2P延迟补偿机制
  • FPGA|Quartus II 中pll IP核的具体使用方法
  • 优化正则表达式性能:预编译与模式匹配的最佳实践
  • Coolutils Total PDF Converter中文版:多功能PDF文件转换器
  • 奇偶破题:当反函数撞上奇函数
  • 【前端:Html】--4.进阶:媒体
  • 【论文阅读】Sparse4D v3:Advancing End-to-End 3D Detection and Tracking
  • 订单后台管理系统-day07菜品模块
  • MIT 6.5840 (Spring, 2024) 通关指南——Lab 2: Key/Value Server
  • openssh 安装部署
  • 【Day 41】Shell脚本-循环
  • 802.11 和 802.1X
  • 谷歌-PCR-CA-联合训练并行小码本引入语义特征
  • wpf之WrapPanel