学习 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使用vant中的checkbox实现全选功能
Nov 17 Vue.js
springboot+vue实现文件上传下载
Nov 17 Vue.js
Vue router传递参数并解决刷新页面参数丢失问题
Dec 02 Vue.js
vue el-upload上传文件的示例代码
Dec 21 Vue.js
Vue 简单实现前端权限控制的示例
Dec 25 Vue.js
vuex的使用步骤
Jan 06 Vue.js
vue使用echarts画组织结构图
Feb 06 Vue.js
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
Feb 20 Vue.js
详解Vue的sync修饰符
May 15 Vue.js
vue Element-ui表格实现树形结构表格
Jun 07 Vue.js
Vue3如何理解ref toRef和toRefs的区别
Feb 18 Vue.js
vue3引入highlight.js进行代码高亮的方法实例
Apr 08 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
一个PHP日历程序
2006/12/06 PHP
分享一个漂亮的php验证码类
2016/09/29 PHP
javascript 实用的文字链提示框效果
2010/06/30 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
JS高级笔记
2011/07/13 Javascript
Ubuntu 11.10 安装Node.js的方法
2011/11/30 Javascript
JS的replace方法详细介绍
2012/11/09 Javascript
JavaScript的arguments对象应用示例
2014/09/15 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
jQuery中next方法用法实例
2015/04/24 Javascript
AngularJS 面试题集锦
2016/09/06 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
javascript实现计算器功能
2020/03/30 Javascript
使用vue引入maptalks地图及聚合效果的实现
2020/08/10 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
[01:20]PWL开团时刻DAY9——听说潮汐没用?
2020/11/10 DOTA
Python中几种操作字符串的方法的介绍
2015/04/09 Python
python解决网站的反爬虫策略总结
2016/10/26 Python
使用Python写一个贪吃蛇游戏实例代码
2017/08/21 Python
Python绘制的二项分布概率图示例
2018/08/22 Python
influx+grafana自定义python采集数据和一些坑的总结
2018/09/17 Python
python绘制散点图并标记序号的方法
2018/12/11 Python
python中property和setter装饰器用法
2019/12/19 Python
计算Python Numpy向量之间的欧氏距离实例
2020/05/22 Python
python爬虫中PhantomJS加载页面的实例方法
2020/11/12 Python
毕业生教师求职信
2013/10/20 职场文书
学生打架检讨书1000字
2014/01/16 职场文书
会计专业大学生职业生涯规划书
2014/02/11 职场文书
珠宝店促销方案
2014/03/21 职场文书
白血病捐款倡议书
2014/05/14 职场文书
灵山大佛导游词
2015/02/04 职场文书
雾霾停课通知
2015/04/24 职场文书
2015大学迎新晚会策划书
2015/07/16 职场文书
vue3使用vuedraggable实现拖拽功能
2022/04/06 Vue.js