尚硅谷商城笔记

196 阅读2分钟

不使用vuex进行请求API

让所有组件实例都能使用API接口(无需在每个组件实例中每次单独引入):在main.js文件中将API接口进行统一引入,并在beforeCreate钩子函数中进行挂载

image.png 控制台打印效果:

image.png


Trade组件内 methods:

this.orderId已经在data中声明

路由跳转传参

路由传参资料

image.png

尽量别在声明周期函数上使用async

解决方法:在methods中定义后,再在生命周期函数中调用

image.png

二级路由

二级路由的路径不写全时,不需要反斜杠(/)

router:路由重定向别忘了添加

image.png

组件实例:

image.png

设置出口才能显示

image.png

订单模块->商品展示中信息出现多次

image.png 解决方案:在每个td中加入索引的判断,index==0才展示该标签,所以该标签只会展示一次

image.png 解决后效果图:

image.png

未登录的导航守卫

将未登录时没去成的路由通过地址栏传递query参数的方式,重定向到该地址

router内:

image.png

login组件内:

image.png

路由独享守卫&组件内守卫

router: image.png 组件实例中配置:

image.png

图片懒加载

懒加载vue-lazyload插件官网

main.js:

image.png

组件内:换成v-lazy指令

image.png

Vue图片引入

非js内引入图片(html):一般都是通过路径引入 <img src="../assets/pay.jpg">

js内引入图片: 可分为通过路径引入不通过路径引入

1.通过路径方式,必须require()引入

2.不通过路径方式,①图片网址 ②通过import导入后使用

自定义插件回顾

image.png 控制台: image.png

组件实例:

image.png

路由懒加载

当打包构建应用时,JavaScript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了。

路由懒加载

image.png

项目打包

npm run build

dist文件下的js文件存放我们所有的js文件,并且经过了加密,并且还会生成对应的map文件。

image.png

map文件作用:因为代码是经过加密的,如果运行时报错,输出的错误信息无法准确得知时那里的代码报错。有了map就可以向未加密的代码一样,准确的输出是哪一行有错。

map文件也可删除(文件较大,程序员在打包前都应该处理好各种报错了) 在vue.config.js配置productionSourceMap: false

注意:vue.config.js配置改变,需要重启项目