其他分享
首页 > 其他分享> > Vue2技术整理3 - 高级篇 - 更新完毕

Vue2技术整理3 - 高级篇 - 更新完毕

作者:互联网

3、高级篇

前言





3.1、回顾浏览器本地存储





3.3、组件的自定义事件

3.3.1、绑定自定义事件

image




3.3.1.1、v-on搭配emit实现

image

image

image




3.3.1.2、ref搭配mounted实现

image

image




3.3.2、解绑自定义事件

image

image

image

说在beforeDestroy中,会销毁子组件和自定义事件

image

image




3.3.3、自定义事件中的两大坑

子组件是如下的样子



1、在ref属性实现的方式中,关于this的指向问题



2、组件使用原生DOM事件的坑【 ps:了解native修饰符,学后端的人看源码的时候,对这个修饰符再熟悉不过了 】




3.3.4、自定义事件总结



3.4、全局事件总线



3.4.1、疏通全局事件总线逻辑

image

但是:现在把思路换一下来实现它

image



通过上面的分析图了解之后,就可以分析出:单独选取的那个组件需要具有如下的特性:



1、那么为了实现第一步:能够让所有的组件都看得到可以怎么做?




3.4.2、全局事件总线实例


实例演示:




3.4.3、全局事件总线总结



3.5、消息订阅与发布

什么是消息订阅与发布?



3.5.1、玩一下pubsub-js

基础代码



1、给项目安装pubsub-js库,指令:npm install pubsub-js



2、消息发布方



3、消息接收方



4、效果如下




3.5.2、消息订阅与发布总结



3.6、插槽

1、基础代码




3.6.1、默认插槽

需求、让食品分类中显示具体的一张食品图片、让电影分类中电视某一部具体的电影,使用默认插槽改造




3.6.2、具名插槽


需求、在电影分类的底部显示"热门"和"悬疑"




3.6.3、作用域插槽


基础代码




需求:多个组件一起使用,数据都是一样的,但是有如下要求:



开始改造代码:



既然作用域插槽会玩了,那就实现需求吧



另外:父组件接收数据时的scope还有一种写法,就是使用slot-scope




3.6.4、插槽总结

1、作用:让父组件可以向子组件指定位置插入HTML结构,也是一种组件间通信的方式,适用于:父组件 ===》 子组件

2、分类:默认插槽、具名插槽、作用域插槽

3、使用方式




3.7、Vuex




3.7.1、vuex原理

image




3.7.2、搭建Vuex环境

1、在项目中安装vuex 指令:npm install vuex



2、编写store



3、让store在任意组件中都可以拿到




vuex环境搭建小结




3.7.3、简单玩一下vuex的流程


1、先把要操作的数据 / 共享数据放到state中



2、在组件中使用dispatch这个API把key-value传给actions



2、actions接收key-value【 ps:要是有逻辑操作,也放在这里面,ajax也是 】



3、mutations接收key-value



4、查看开发者工具【 ps:简单了解,自行万一下 】

当然:前面说过,直接在组件中调commit这个API从而去和mutations打交道,这种是可以的,适用于:不需要逻辑操作的过程,示例就自行完了

以上便是简单了解vuex,前面的例子看起来没什么用,但是vuex这个东西其实好用得很




3.7.4、认识getters配置项



3.7.5、四个map方法
3.7.5.1、mapState和mapGetters

image



1、改造源代码 —— 使用计算属性实现



2、使用mapState改造获取state中的数据,从而生成计算属性




3、使用mapGetters把getters中的东西生成为计算属性




3.7.5.2、mapActions 和 mapMutations


1、mapActions —— 调的API就是dispatch

image



2、mapMutations —— 这个和mapActions一模一样,只是调用的API是commit




3.7.6、简单玩一下组件共享数据

1、在state中再加一点共享数据



2、新增Person组件



3、共享数据

操作如下:




3.8、路由器 router

3.8.1、认识路由和路由器





3.12、路由器 router

3.12.1、认识路由和路由器





3.12.2、简单使用路由器

1、准备工作:




2、开始玩路由器 router




另外:从此处开始,可以先摸索Element-ui组件库了,这是专门搭配vue来做页面的网站 和 bootstrap一个性质,这个东西后续要用,网址如下:




vue-router使用小结




3.12.3、聊聊路由器的一些细节



3.12.4、多级路由

1、在src/page下再新建两个路由组件



2、给home路由规则编写多级路由



3、重新编写Hmoe.vue路由组件



4、运行效果如下




3.12.5、路由传参

1、query的字符串传参写法【 ps:也就是路径传参嘛,适合传递少量参数 】



2、query的对象写法 【 ps:适合传递大量参数




3.12.6、命名路由


实例:




命名路由小结




3.12.7、路由另一种传参 - params


1、使用params传递参数【 ps:数据的传递者 】,这一步和以前的query传递没什么两样,只是改了一个名字而已



路由params传参小结




3.12.8、路由的props配置项


1、布尔值写法



2、函数写法



3、另外的方式




3.12.9、router-link中的replace属性

image



router-link的replace属性小结




3.12.10、编程式路由导航


1、玩一下push和replace这两个API



2、玩一下back和forward这两个API



3、玩一下go这个API




3.12.11、缓存路由组件


1、缓存一个路由组件 —— 字符串写法



2、缓存多个路由组件 —— 数组写法




3.12.12、另外的生命钩子


1、另一对生命钩子



2、另外一个钩子函数就是nextTick




3.12.13、路由守卫 - 重要、开发常用
3.12.13.1、全局前置路由守卫







3.12.13.2、全局后置路由守卫







3.12.13.3、独享路由守卫





3.12.14、路由器的两种工作模式







3.12.15、关于项目上线的问题


1、编写完了程序之后打包项目



2、使用node+express框架编写一台小服务器模拟一下上线



3、准备工作弄完了,现在把刚刚使用npm run build打包的dist中的文件复制到服务器中去



4、让复制进去的文件能够被服务器认识




3.13、结语

Vue2到此结束,另外还有一些Vue UI组件库



接下来的技术点就是:Vue3

标签:ps,vue,自定义,更新,完毕,就是,Vue2,组件,路由
来源: https://www.cnblogs.com/xiegongzi/p/15875808.html