vue学习视频(三)高级

尚硅谷:https://www.bilibili.com/video/BV1Zy4y1K7SH?p=91

动画效果

css3动画


CSS3动画样式

1、先写好动画样式
2、需要动画的地方使用<transition>标签包裹
3、样式是定义好的名称:进场动画:v-enter-active 离场动画:v-leave-active
4、如果transition取名字name=hello 动画样式:hello-enter-active,不再使用默认的v-enter-active
5、默认刚进入的时候就有动画,加属性appear为true。 :appear="true"
6、vue不与动画对话,而是控制样式名称!

过渡效果

过渡效果代码

简写代码


image.png

或者


image.png

多个元素的过渡

transition元素,只能包裹一个元素,如果是组,必须使用transition-group,并且结合key使用


image.png

集成第三方库实现动画

库名:Animate
https://www.npmjs.com/package/animate
https://animate.style/

image.png

总结


动画总结1

动画总结2

为什么vue或者react尽量少的使用jauery?
因为jquery主要是封装了对dom操作的api,而vue和react主要是减少对dom的操作
虽然jquery有ajax请求,但是有很多其他的代替api;如axios
axios优势是:
1、是promise封装;
2、体量小,是jquery的1/4;
3、

jquery、axios都是对xhr(XMLHttpRequest)的封装!
fetch 与 xhr是平级的。
fetch 也是promise风格的。
问题一:fetch返回的数据会包裹2层promise
问题二:fetch的兼容性问题(IE上不能使用fetch)

同源策略(3个):
协议名
主机名
端口号
http://localhost:8080

image.png

浏览器发送请求,服务器收到,并返回数据,浏览器收到信息,但是发现不是同一策略,所以浏览器拦截了。。。

跨域问题的解决:
1、使用cors(后端配置)
2、使用jsonp,主要是借助script标签,在src中引入外部资源的时候,不受同源资源限制的策略(前后端搭配使用)只能解决get请求,不能解决post请求
3、配置代理服务器
服务器之间传数据,不使用ajax,直接使用http请求即可。
ajax是前端技术,必须是有浏览器,有window,有xhr/fetch等
代理服务器配置方法:
1、nginx
2、借助vue-cli(在vue.config.js中配置 devserver.proxy)

示例:
方式一:


image.png

localhost:8080 本地资源访问路径
localhost:5000/students 才是服务器资源访问路径
在项目中axios访问地址是"localhost:8080/students"
只有在当前项目中没有的资源,才会去转到服务器上面。如果访问地址,在前端有资源,就不会再用代理,请求后台服务器了。
存在问题2个:
1、不能同时指定多个代理。
2、不能确定哪些请求可以走代理。(不灵活)
方式二:


image.png

通过参数 pathRewrite:{"^/atguigu":""}
表示把以'/atguigu'开头的字符串替换为空串。
ws表示用于支持websocket

changeOrigin:true/false 用于控制请求头中的host值,true表示与服务器一致,false表示显示前端真实的请求地址,默认为true


总结1

总结2

import引入css文件,会严格检测资源文件!
在src下新建assets文件夹,css文件夹,放入bootstrap.css文件,在App.vue中引入(不推荐)

或者在public文件夹下新建css文件夹,放入bootstrap.css文件,在index.html中引入

请求的模板字符串${aaa}

image.png

后台接口返回的数据,需要查看后台提供的接口文档!

兄弟组件间通信,推荐使用全局事件总线!

组件传值与接收值,不能定义多个参数,直接传true或者false

// 方法一
自定义全局事件总线(接收者)
this.$bus.on("fn",(isFirst,isLoading,users)=>{})
使用全局事件总线(发布者)
this.$bus.$emit("fn",true,false,[1,2,3]) // **语义不明确**,尽量避免使用这个方法
// 方法二
使用对象的方式传值与接收值
this.$bus.$emit("fn",{isFirst:true,isLoading:true,users:[1,2,3]})
this.$bus.on("fn",(obj)=>{this.isFirst=obj.isFirst}) // (方式一:每一个属性去匹配)
this.$bus.on("fn",(obj)=>{this.userInfo=obj.obj}) // (方式二:使用对象,直接对象匹配,但是如果传的值不全,可能出现属性丢失的情况,使用下面的情况可以避免)
this.$bus.on("fn",(obj)=>{this.userInfo={...this.userInfo,...obj.obj}}) // (方式三:把用户对象与传入对象都延展开,以用户的属性为基准,匹配传入的参数,有则替换,没有也不会丢失。)
image.png

企业微信截图_16421426568565.png

使用vue-resource(插件)发送请求

npm i vue-resource

import vueResource from vue-resource
Vue.use(vueResource )
this.$http.get(url).then(fn(){},fe(){})

插槽(slot)

先在组件中打个标识(挖个坑),等待组件的使用者去放入东西。
自闭合标签,开始结束标签
<abc/>
<abc><img src=""></abc> 把img标签放入指定的位置。
<slot>我是默认值,如果使用者不传,就显示我。</slot>

默认插槽

具名插槽

插槽同名,不是覆盖,是累加

<slot name="demo">我是默认值,如果使用者不传,就显示我。</slot> //定义
<abc><img slot="demo" src=""></abc> // 使用
image.png

作用域插槽

插槽本来就是为了占位,让使用者把对象输入放到该位置。
但是如果插槽中有数据,需要渲染到每一个使用者里面,就需要使用值的传递,这个传递值的过程就是定义的作用域插槽。实现代码如下


image.png

image.png

image.png
插槽总结1

插槽总结2

插槽总结3
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,367评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,959评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,750评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,226评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,252评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,975评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,592评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,497评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,027评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,147评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,274评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,953评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,623评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,143评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,260评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,607评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,271评论 2 358

推荐阅读更多精彩内容

  • 一、什么是Vue.js 1. vue是一种数据驱动的前端框架 this.msg="我爱你",通过改变数据,然后自动...
    在路上919阅读 1,609评论 0 2
  • Vue 课程学习笔记 基础部分 方法创建在 method 的大括号里面 可以将 v-on:click 简写为 @c...
    ThornFUN阅读 651评论 0 0
  • Vue.js入门教程 参考文献 Vue-Cli webpack打包入门:http://www.cnblogs.co...
    采香行处蹙连钱阅读 1,451评论 2 3
  • Vue一文学会? Vue大家都知道就是一个国内非常流行的框架,最近因为过了许久没用Vue对于Vue的许多早已淡忘,...
    看物看雾阅读 604评论 0 3
  • 一、概念介绍 Vue.js和React.js分别是目前国内和国外最火的前端框架,框架跟类库/插件不同,框架是一套完...
    刘远舟阅读 1,064评论 0 0