学习 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 $attrs & inheritAttr实现button禁用效果案例
Dec 07 Vue.js
Vue实现小购物车功能
Dec 21 Vue.js
Vue实现随机验证码功能
Dec 29 Vue.js
详解Vue2的diff算法
Jan 06 Vue.js
如何在vue中使用HTML 5 拖放API
Jan 14 Vue.js
详解vue3中组件的非兼容变更
Mar 03 Vue.js
详解Vue slot插槽
Nov 20 Vue.js
一起来看看Vue的核心原理剖析
Mar 24 Vue.js
vue 数字翻牌器动态加载数据
Apr 20 Vue.js
vue动态绑定style样式
Apr 20 Vue.js
使用vuex-persistedstate本地存储vuex
Apr 29 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
PHP中source #N问题的解决方法
2014/01/27 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
解决WordPress使用CDN后博文无法评论的错误
2015/12/15 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
特殊日期提示功能的实现方法
2016/06/16 Javascript
Bootstrap如何创建表单
2016/10/21 Javascript
浅谈react.js 之 批量添加与删除功能
2017/04/17 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
2018/01/12 Javascript
详解JavaScript 中 if / if...else...替换方式
2018/07/15 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
原生JS实现相邻月份日历
2020/10/13 Javascript
[04:44]DOTA2西游记战队视频彩蛋流出 师徒开黑巧遇林书豪
2016/08/03 DOTA
[49:29]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python基础教程之正则表达式基本语法以及re模块
2016/03/25 Python
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
对python3.4 字符串转16进制的实例详解
2019/06/12 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
python django生成迁移文件的实例
2019/08/31 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
2020/02/24 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
html5定制表单_动力节点Java学院整理
2017/07/11 HTML / CSS
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
工作态度检讨书
2014/02/11 职场文书
团队精神的演讲稿
2014/05/14 职场文书
跑吧孩子观后感
2015/06/10 职场文书
谢师宴学生答谢词
2015/09/30 职场文书
让文件路径提取变得更简单的Python Path库
2021/05/27 Python
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript
SpringBoot+VUE实现数据表格的实战
2021/08/02 Java/Android
Python学习之os包使用教程详解
2022/03/21 Python
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android