学习 Vue.js 遇到的那些坑


Posted in Vue.js onFebruary 02, 2021

排名不分先后

最近好像都是只发了一些生活类,吐槽的一些 blog,不更新点技术相关的 可能有人会觉得 这家伙肯定又在偷懒了。

那么 好 我要开始装逼了

类空指向

就是类似于空指针的一种错误方式 不会在 console 上报错 非常难找的问题

resp.data.user.avatar

//如果这个user是null的话 这么调用不会报错 也不会向下执行 非常坑

//如果你想判断这个avatar的话 要这么做

if(resp.data.user && resp.data.user.avatar){
 //do...
}

ES6 箭头函数

箭头函数和非箭头函数也是有很大区别的

//普通匿名函数写法
api()
.then(function(resp){
 this.count()
 //注意这个this 不是能正常使用的 count会是个undefined
})


//ES6 箭头函数
api()
.then(resp => {
 this.count()
 //这里没毛病
})

vuetify

这是一个基于 Google Material 设计语言的 UI 框架,可以在 Vue.js 运行。

只是安装方式有点特殊,并且它的插件安装方式也很特殊。

例如 vuetify 的 dialog

import VuetifyDialog from 'vuetify-dialog'
import vuetify from './plugins/vuetify';

Vue.use(VuetifyDialog, {
 context: {
 vuetify
 }
})

这就导致你写 UI 的时候 要面向 Google 编程。(虽说其他后端语言也差不多 笑)

vue-cli

如果你是要新创建一个项目,并且这个项目规模不是特别大。

我非常推荐你使用 vue-cli 创建,说简单点儿 这会提升 b 格。

废话少说 上图

学习 Vue.js 遇到的那些坑

vue create your_project_name

vue ui

vue ui 会打开一个可视化页面 像是上图那样。

然后在里面导入由 vue-cli 创建的项目就可以和上图一样了 :)

异步和同步

其实之前有个非常蠢的想法。

就是在用户输完表单之后,立即和服务器进行验证,然后将结果刷新到 UI 上。

但是这个刷新 UI 需要一个同步操作。

我就一个劲的折腾怎么去搞定将 axios 的异步操作变成同步。

如果是之前的 jQuery 就非常简单么 只需要将里面的 aysnc 属性改掉就可以了。

但是你每次发请求 浏览器都会在 console 上提示 不推荐 XHR 同步请求。

为啥呢,因为浏览器里面页面是单线程的,如果你的请求是同步的,那么就会导致每个请求都会让页面卡住一定的时间。

所以我最后还是改成了逐步验证的方式 让所有的请求都是异步操作的。

运行和部署

如果你本地开发

运行 serve(有些项目是 dev) 会开放一个端口号 让你访问用户界面,并进行接近实时的 UI 调整。

如果你是要部署到线上 需要先执行 build 会在输出目录里面生成静态文件。

再把这些文件部署到服务器上 像是:

  • nginx
  • caddy

这里我非常推荐 caddy,它是一个基于 golang 开发的服务器,部署轻量化,并且带有管理 api,非常良好的支持 Http2,并且 支持 http3。

TIPS

这里只记录一些刚开始玩的项目,在后面的开发里,还会遇到更多问题。
例如页面之间的刷新,等等等等。

所以很快就会有下一章的。

希望能帮到你。

以上就是学习 Vue.js 遇到的那些坑的详细内容,更多关于学习 Vue.js 遇到的坑的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
使用vue编写h5公众号跳转小程序的实现代码
Nov 27 Vue.js
Vue如何实现验证码输入交互
Dec 07 Vue.js
Vue看了就会的8个小技巧
Jan 21 Vue.js
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
Feb 20 Vue.js
vue 动态添加的路由页面刷新时失效的原因及解决方案
Feb 26 Vue.js
vue实现可拖拽的dialog弹框
May 13 Vue.js
vue响应式原理与双向数据的深入解析
Jun 04 Vue.js
vue.js Router中嵌套路由的实用示例
Jun 27 Vue.js
vue配置型表格基于el-table拓展之table-plus组件
Apr 12 Vue.js
vue @click.native 绑定原生点击事件
Apr 22 Vue.js
Vue ECharts实现机舱座位选择展示功能
May 15 Vue.js
Vue2项目中对百度地图的封装使用详解
Jun 16 Vue.js
Vue常用API、高级API的相关总结
Feb 02 #Vue.js
Vue项目打包部署到apache服务器的方法步骤
Feb 01 #Vue.js
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 #Vue.js
Vue 实现可视化拖拽页面编辑器
Feb 01 #Vue.js
vue-video-player 断点续播的实现
Feb 01 #Vue.js
Vite和Vue CLI的优劣
Jan 30 #Vue.js
如何使用RoughViz可视化Vue.js中的草绘图表
Jan 30 #Vue.js
You might like
各种战术和打法的原创者
2020/03/04 星际争霸
PHP把JPEG图片转换成Progressive JPEG的方法
2014/06/30 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
PHP-FPM的配置与优化讲解
2019/03/15 PHP
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
javascript 兼容鼠标滚轮事件
2009/04/07 Javascript
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
关于jQuery参考实例2.0 用jQuery选择元素
2013/04/07 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
JavaScript方法_动力节点Java学院整理
2017/06/28 Javascript
详解vue-cli与webpack结合如何处理静态资源
2017/09/19 Javascript
深入剖析Express cookie-parser中间件实现示例
2018/02/01 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
微信小程序 image组件遇到的问题
2019/05/28 Javascript
[00:37]DOTA2上海特级锦标赛 OG战队宣传片
2016/03/03 DOTA
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
Python sys.argv用法实例
2015/05/28 Python
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
使用Python爬取最好大学网大学排名
2018/02/24 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
python pandas修改列属性的方法详解
2018/06/09 Python
Python3.5 处理文本txt,删除不需要的行方法
2018/12/10 Python
使用python实现回文数的四种方法小结
2019/11/24 Python
详解HTML5 data-* 自定义属性
2018/01/24 HTML / CSS
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
美国电力供应商店/电气批发商:USESI
2018/10/12 全球购物
面试后感谢信
2014/02/01 职场文书
工程专业求职自荐书范文
2014/02/08 职场文书
关于爱国的演讲稿
2014/05/07 职场文书
工商管理本科生求职信
2014/07/13 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
2016年安康杯竞赛活动总结
2016/04/05 职场文书
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js
Python保存并浏览用户的历史记录
2022/04/29 Python