学习 Vue.js 遇到的那些坑

作者:shenlan 时间:2023-07-02 16:31:54 

目录
  • 类空指向

  • ES6 箭头函数

  • vuetify

  • vue-cli

  • 异步和同步

  • 运行和部署

  • TIPS

排名不分先后

最近好像都是只发了一些生活类,吐槽的一些 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

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

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

希望能帮到你。

来源:https://blog.inmind.ltd/index.php/archives/56/

标签:学习,vue.js,坑
0
投稿

猜你喜欢

  • python神经网络slim常用函数训练保存模型

    2023-07-14 14:22:23
  • SQL语句练习实例之二——找出销售冠军

    2011-10-24 19:52:45
  • 如何在MySQL数据库中使用XML数据

    2009-12-29 10:48:00
  • go语言中函数与方法介绍

    2024-04-23 09:34:13
  • uniapp实现微信H5扫码功能的完整步骤

    2024-04-10 16:21:04
  • asp如何创建一个PDF文件?

    2009-11-14 20:53:00
  • Mac下Supervisor进程监控管理工具的安装与配置

    2023-06-12 14:33:12
  • 详解Python模块化--模块(Modules)和包(Packages)

    2023-03-30 01:14:27
  • Entity Framework Core生成列并跟踪列记录

    2023-07-01 07:06:46
  • Linux中安装Python的交互式解释器IPython的教程

    2023-09-14 05:50:06
  • HTML5硝烟弥漫

    2009-07-06 14:44:00
  • vue.js实现选项卡切换

    2024-04-30 10:26:13
  • 怎样写好commit message提高业务效率

    2023-09-20 06:06:40
  • Python使用Flask框架同时上传多个文件的方法

    2023-02-02 10:16:49
  • MYSQL数据库常用命令集合

    2009-02-26 16:01:00
  • Python中常见的加密解密算法总结

    2021-10-18 12:13:17
  • Sql Server 开窗函数Over()的使用实例详解

    2024-01-17 14:34:33
  • Python正规则表达式学习指南

    2021-04-11 15:21:16
  • Python初学者需要注意的事项小结(python2与python3)

    2021-08-16 19:49:26
  • 详解python 拆包可迭代数据如tuple, list

    2022-01-08 19:28:43
  • asp之家 网络编程 m.aspxhome.com