学习 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 表单输入框不支持focus及blur事件的解决方案
Nov 17 Vue.js
Vue如何循环提取对象数组中的值
Nov 18 Vue.js
Vue实现购物小球抛物线的方法实例
Nov 22 Vue.js
vue element实现表格合并行数据
Nov 30 Vue.js
Vue router传递参数并解决刷新页面参数丢失问题
Dec 02 Vue.js
vue使用echarts图表自适应的几种解决方案
Dec 04 Vue.js
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
vue使用v-model进行跨组件绑定的基本实现方法
Apr 28 Vue.js
vue 实现上传组件
May 31 Vue.js
三种方式清除vue路由跳转router-link的历史记录
Apr 10 Vue.js
Vue操作Storage本地化存储
Apr 29 Vue.js
vue中data里面的数据相互使用方式
Jun 05 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 程序员的调试技术小结
2009/11/15 PHP
PHP引用符&的用法详细解析
2013/08/22 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
php中实现字符串翻转的方法
2017/02/22 PHP
一页面多XMLHttpRequest对象
2007/01/22 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
面向对象的Javascript之二(接口实现介绍)
2012/01/27 Javascript
用jquery存取照片的具体实现方法
2013/06/30 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
JS实现全屏的四种写法
2016/12/30 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
2017/05/17 jQuery
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
2017/08/18 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
2018/03/29 Javascript
node结合swig渲染摸板的方法
2018/04/11 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
Nodejs中的require函数的具体使用方法
2019/04/02 NodeJs
Vue在 Nuxt.js 中重定向 404 页面的方法
2019/04/23 Javascript
解决Layui中templet中a的onclick参数传递的问题
2019/09/20 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
python中函数总结之装饰器闭包详解
2016/06/12 Python
Python的语言类型(详解)
2017/06/24 Python
Python简单实现网页内容抓取功能示例
2018/06/07 Python
Django框架使用富文本编辑器Uedit的方法分析
2018/07/31 Python
Python 获取项目根路径的代码
2019/09/27 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
2020/01/13 Python
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
HTML5通用接口详解
2016/06/12 HTML / CSS
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
北大青鸟学生求职信
2013/09/24 职场文书
项目负责人任命书
2014/06/04 职场文书
毕业证丢失证明范本
2014/09/20 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP