学习 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与element实现创建试卷相关功能(实例代码)
Dec 07 Vue.js
vue使用exif获取图片经纬度的示例代码
Dec 11 Vue.js
vue实现登录功能
Dec 31 Vue.js
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
Jan 08 Vue.js
vue组件是如何解析及渲染的?
Jan 13 Vue.js
vue实现轮播图帧率播放
Jan 26 Vue.js
Vue 实例中使用$refs的注意事项
Jan 29 Vue.js
vue 根据选择的月份动态展示日期对应的星期几
Feb 06 Vue.js
Vue多选列表组件深入详解
Mar 02 Vue.js
vue如何批量引入组件、注册和使用详解
May 12 Vue.js
Vue Element-ui表单校验规则实现
Jul 09 Vue.js
vue+echarts实现多条折线图
Mar 21 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配置参数总结
2013/06/14 PHP
ajax返回值中有回车换行、空格的解决方法分享
2013/10/24 PHP
PHP编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
Laravel中注册Facades的步骤详解
2016/03/16 PHP
让textarea自动调整大小的js代码
2011/04/12 Javascript
javascript 事件处理、鼠标拖动效果实现方法详解
2012/05/11 Javascript
Extjs4 GridPanel 的几种样式使用介绍
2013/04/18 Javascript
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
JavaScript实现图片轮播的方法
2015/07/31 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
Javascript删除指定元素节点的方法
2016/06/21 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
Node.js连接MongoDB数据库产生的问题
2017/02/08 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
2017/03/08 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
基于JavaScript实现前端数据多条件筛选功能
2020/08/19 Javascript
详解组件库的webpack构建速度优化
2018/06/18 Javascript
JS简单判断是否在微信浏览器打开的方法示例
2019/01/08 Javascript
vue单页面在微信下只能分享落地页的解决方案
2019/04/15 Javascript
基于JS实现一个随机生成验证码功能
2019/05/29 Javascript
Node.js学习教程之Module模块
2019/09/03 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
JS实现手风琴特效
2020/11/08 Javascript
解决python3 安装完Pycurl在import pycurl时报错的问题
2018/10/15 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
django自定义非主键自增字段类型详解(auto increment field)
2020/03/30 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
2020/04/10 Python
如何用Python徒手写线性回归
2021/01/25 Python
30岁生日感言
2014/01/25 职场文书
研究生导师推荐信
2014/09/06 职场文书
公司与个人合作协议书
2016/03/19 职场文书