vue ref 绑定的事件需要移除吗_Vue易遗忘的基础复习(二)

数据请求

  1. Vue-resource请求

在Vue2.0之后已经被舍弃

2. fetch请求

因为传统 Ajax (指 XMLHttpRequest)存在一些令人头疼的问题:配置和调用方式非常混乱,而且基于事件的异步模型写起来也没有现代的 Promise,generator/yield,async/await 友好。而Fetch 的出现就是为了解决 XHR 存在的问题。

1 //get
2 fetch("**?a=1&b=2").then(res=>res.json()).then(res=>{console.log(res)})
3 fetch("**").then(res=>res.text()).then(res=>{console.log(res)})4 //post
5 fetch("**",{
6 	method:'post', //必须指明post请求方式,默认是get
7 	headers: {
8 		"Content‐Type": "application/x‐www‐form‐urlencoded"
9 	},
10 	body: "name=zhangsan&age=100"
11 }).then(res=>res.json()).then(res=>{console.log(res)});

注意:因为fetch请求的数据是一个状态,所以想要调取数据需要在第二个.then之后才能拿到数据

3.axios请求

// get
axios.get("json/test.json?name=zhangsan&age=10").then(res=>{// res.data 才是真正的后端数据console.log(res.data.data.films)this.datalist = res.data.data.films
})//post
axios.post("json/test.json",{name:"zhangsan",age:100
}).then(res=>{console.log(res.data)
})

组件使用

(1)组件化

模块化是将页面中的整个完整的功能模块划分 优点:代码复用,便于维护

(2)组件

组件是可复用的 Vue 实例。组件之间可以相互嵌套,最外层只能有一个根。

组件分为:全局组件、局部组件

全局组件在任意的实例,所有父级组件都能使用,局部组件只能在创建自己的父级组件或者自己的实例中使用。

全局组件:

Vue.component('hello',{template:"<h1>hello</h1>"
})
组件通过template来确定自己的模板,template里的模板必须有根节点,标签必须闭合组件的属性挂载通过:data方法来返回一个对象作为组件的属性,这样做的目的是为了每一个组件实例都拥有独立的data属性

局部组件:

 components:{'hello':{template:"<h1>asdasdasdasdasdas</h1>"}}

全局组件中可以嵌套局部组件:

<div id="app"><fater/>
</div>new Vue({el:"#app",components:{father:{template:'<div>father组件</div>',components:{son:{template:"<div>son组件</div>"}}}}
})

(3)过滤器

filter

全局过滤器:filter

Vue.filter(name,handler)
//name  过滤器名称
//handler  过滤器函数//例子:
<p>{{msg | firstUpper(3,2)}}</p>
Vue.filter('firstUpper',function (value,num=1,num2) {return value.substr(0,num).toUpperCase()+value.substr(num).toLowerCase()
})

局部过滤器:filters

filters:{firstUpper:function (value,num=1,num2) {return value.substr(0,num).toUpperCase()+value.substr(num).toLowerCase()}}

(4)虚拟dom

正常的DOM操作会消耗很多性能,Vue提供了虚拟dom方案。 虚拟DOM的核心思想是:对复杂的DOM结构,提供一种方便的工具,保证最小化的DOM操作,来提高执行效率。

d03f35ac50cb98f2736c2af41ab77d0d.png

虚拟DOM的Diff算法:

当DOM状态发生改变时,虚拟DOM会进行Diff运算,会进行同层级进行比较前后两棵虚拟DOM树的节点。这就需要每一个节点需要一个独立的key来进行对比,提高效率。

8dbeac5138a301ba606144542971b3e5.png

(5)组件之间的通信:因为组件之间的数据,方法是没办法共享的。 i.父子通信:

(1)Props

//父组件引用子组件,给子组件发送数据<bbb money="2"></bbb>//子组件需要接受
'bbb':{props:['money']
}

单向数据流:Prop只是单向绑定,只能父组件属性变化传递给子组件,所以你不能都在子组件中更变prop,会报错。

我们可已对prop传入的数据进行验证

props:{//类型验证:str:String,strs:[String,Number],//必传验证num:{type:Number,required:true}
}
//当父组件传递数据给子组件的时候,子组件不接收,这个数据就会挂载在子组件的模板的根节点上

slot插槽:(1)匿名插槽

//父组件
<div id="app"><hello><div>联通卡</div><div>移动卡</div></hello>
</div>
//子组件
<template id="hello"><div><slot></slot> //在哪写就以为在哪插入</div>
</template>

(2)具名插槽

//父组件
<div id="app"><hello><div slot="a">联通卡</div><div slot="b">移动卡</div></hello>
</div>
//子组件
<template id="hello"><div><slot name="a"></slot><slot name="b"></slot></div>
</template>

(2)ref

通过this.$ref. 可以实现数据的传输

a308910163eb11886050c97646bab7fb.png

(3)关系链

this.$parent.xxx ($parent,$children,$root),其中[]中的下标是从第一个子组件开始计算,其他子节点不算。

缺点:太乱了 this.$root.$children[3].$children[4]....

ii.子父通信:

(1)$emit

父组件需要声明一条数据,自己用,需要提供一个更自身数据的方法,父组件在调用子组件的时候,需要通过自定义事件将更改自身数据的函数传递给子组件,再用this.$emit(,)触发自定义事件通过父组件自己修改自己数据

(2)$ref

iii.兄弟通信:

采用关系链和ref链去使用或者用event bus事件总线,解决兄弟之间通信问题。

(6)transition过渡

用transition标签包裹需要过渡的的元素,多个元素要有不同key值,transition会有一个name属性,有两种过渡模式: in-out: 新元素先进行过渡,完成之后当前元素过渡离开。 out-in: 当前元素先进行过渡,完成之后新元素过渡进入,然后再CSS中添加过渡样式:

name属性值-enter:定义进入过渡的开始状态。在元素被插入时生效,在下一个帧移除。

name属性值-enter-active:定义过渡的状态。在元素整个过渡过程中作用,在元素被插入时生效,在 transition/animation 完成之后移除。这个类可以被用来定义过渡的过程时间,延迟和曲线函数。

name属性值-enter-to: 2.1.8版及以上 定义进入过渡的结束状态。在元素被插入一帧后生效 ,在 transition/animation 完成之后移除。

name属性值-leave: 定义离开过渡的开始状态。在离开过渡被触发时生效,在下一个帧移除。

name属性值-leave-active:定义过渡的状态。在元素整个过渡过程中作用,在离开过渡被触发后立即生效,在 transition/animation 完成之后移除。这个类可以被用来定义过渡的过程时间,延迟和曲线函数。

name属性值-leave-to: 2.1.8版及以上 定义离开过渡的结束状态。在离开过渡被触发一帧后生效 ,在 transition/animation 完成之后移除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306249.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在 ASP.NET Core 中使用 API 分析器

ASP.NET Core 2.2 引入了 API 分析器&#xff0c;它有利于提高 API 的文档化&#xff0c;API分析器 可以应用在任何带有 ApiController 特性的 Controller 上&#xff0c;本篇就和大家一起讨论下。安装 API 分析器 如果你使用的是 ASP.NET Core 2.2 的话&#xff0c;用 Visual …

.net mysql字符串截取_【MySQL】字符串截取之SUBSTRING_INDEX和【MySQL】字符串四则运算...

substring_index(str,delim,count)str:要处理的字符串delim:分隔符count:计数例子&#xff1a;strwww.google.com1.count是正数&#xff0c;那么就是从左往右数&#xff0c;第N个分隔符的左边的全部内容SELECT SUBSTRING_INDEX(www.google.com,.,1);结果是&#xff1a;wwwSELEC…

用C#+Selenium+ChromeDriver 爬取网页,完美模拟真实的用户浏览行为

背景Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。而对于爬虫来说&#xff0c;使用Selenium操控浏览器来爬取网上的数据那么肯定是爬虫中的杀手武器。这里&#xff0c;我将介绍selenium 谷歌浏览器的一般使…

ASP.NET Core ActionFilter引发的一个EF异常

最近在使用ASP.NET Core的时候出现了一个奇怪的问题。在一个Controller上使用了一个ActionFilter之后经常出现EF报错。InvalidOperationException: A second operation started on this context before a previous operation completed. Any instance members are not guarante…

BCVP开发者说第5期:QuartzCore.Blazor

沉静岁月&#xff0c;淡忘流年1项目简介QuartzCore.BlazorQuartzCore.Blazor 是一个基于 .Net5 开发的轻量级 Quartz 作业配置中心&#xff0c;实践应用 Ant Design Blazor 和 FreeSql 两个技术&#xff0c; 对这两个技术感兴趣的小伙伴可以加我一起学习讨论哦&#xff0c;对有…

mysql update返回_MySQL中,当update修改数据与原数据相同时会再次执行吗?

本文同步Java知音社区&#xff0c;专注于Java作者&#xff1a;powdbahttps://yq.aliyun.com/articles/694162一、背景本文主要测试MySQL执行update语句时&#xff0c;针对与原数据&#xff08;即未修改&#xff09;相同的update语句会在MySQL内部重新执行吗&#xff1f;二、测试…

.NET 云原生架构师训练营(模块二 基础巩固 日志)--学习笔记

2.2.2 核心模块--日志ILogger 的使用日志的 ID日志的分类日志的级别LoggerProvider日志的最佳实践.NET Core 和 ASP.NET Core 中的日志记录&#xff1a;https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/logging/?viewaspnetcore-5.0ILogger 的使用在 Get 方法中添…

mysql数据库设计三大范式_了解数据库设计三大范式

数据库设计范式什么是范式&#xff1a;简言之就是&#xff0c;数据库设计对数据的存储性能&#xff0c;还有开发人员对数据的操作都有莫大的关系。所以建立科学的&#xff0c;规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范…

使用BeetleX网关部署第三方Web服务

BeetleX的http/ws网关在早期版本可以启动和管理第三方Web服务进程&#xff0c;在最新的1.5版本中引入了文件管理功能&#xff0c;通过这一功能可以对第三方Web服务进行发布管理。加入文件管理后BeetleX的新版本网关服务可以理解为一个简单化的IIS&#xff0c;但它的不同之处是可…

2020.NET开发者大会大会线上同步直播,以及参会秘籍

2020.NET开发者大会马上就要开幕啦&#xff01;你都做好参会准备没有&#xff1f;本届峰会线上分享将在思否和CSDN两个媒体平台同步进行&#xff0c;大家可以选择适合自己的方式在线参与互动哦&#xff01;访问下方链接&#xff0c;可以直接加入直播&#xff1a;思否直播观看地…

C# 9.0中引入的新特性init和record的使用思考

.NET 5.0已经发布&#xff0c;C# 9.0也为我们带来了许多新特性&#xff0c;其中最让我印象深刻的就是init和record type&#xff0c;很多文章已经把这两个新特性讨论的差不多了&#xff0c;本文不再详细讨论&#xff0c;而是通过使用角度来思考这两个特性。initinit是C# 9.0中引…

使用 .NET Core 中的 EventCounters 衡量性能

背景对于每隔几毫秒发生的事件&#xff0c;最好使每个事件的开销较低&#xff08;小于一毫秒&#xff09;。 否则&#xff0c;对性能的影响将很大。 记录事件意味着你将向磁盘写入内容。 如果磁盘不够快&#xff0c;你将丢失事件。 你需要一个解决方案&#xff0c;而不是记录事…

基于 C# 的 ETL 大数据并行编程

作者&#xff1a;James Spinella译者&#xff1a;精致码农原文&#xff1a;https://bit.ly/3nGQu4J并行编程在历史上一直是软件开发中比较小众和复杂的环节&#xff0c;往往不值得头疼。但编写并行化应用只会越来越简单&#xff0c;一个应用同时利用设备 CPU 上的多个内核&…

一个小技巧助您减少if语句的状态判断

在进行项目的开发的过程中&#xff0c; if 语句是少不了的&#xff0c;但我们始终要有一颗消灭 if / else 语句的心。为了消灭if / else 我们引入了 短路器 的概念。短路器 有时候的确能精简我们的代码&#xff0c;但还不够&#xff0c;因此我参考了一个方法来继续消灭一部分 断…

抢先看:笔者亲历的2020年中国.NET开发者大会活动纪实

编者&#xff1a;2020年中国.NET开发者大会第一天活动已经结束&#xff0c;可以通过https://codechina.csdn.net/lives 会看。第二天的Workshop 也有直播哦。12020年12月19日的苏州工业园区&#xff0c;天公作美&#xff0c;阳光明媚&#xff0c;气象迷人&#xff0c;正是一个搞…

python魔术方法由谁定义_Python的魔术方法

魔术方法就是在定义的类中定义一些”不一般”的方法&#xff0c;使类的使用更方便、完善、健壮&#xff0c;是python特有的方法&#xff0c;一般都是前后包含两个下划线__的方法称为魔术方法&#xff0c;例如__new__。基本魔术方法有哪些__new__&#xff1a;是在一个对象实例化…

Swagger在header中添加token

概述平常做项目使用mvcwebapi&#xff0c;采取前后端分离的方式&#xff0c;后台提供API接口给前端开发人员。这个过程中遇到一个问题后台开发人员怎么提供接口说明文档给前端开发人员。为了解决这个问题&#xff0c;项目中引用swagger&#xff08;我比较喜欢戏称为“丝袜哥”&…

如何在 C# 中使用 数据注解

数据注解 是一种可以应用到 类 或者 类成员上用来指定类之间关系的一种 Attribute&#xff0c;它的应用场景比较多&#xff0c;可用来描述 UI 上如何进行数据展示&#xff0c;还可以用来做类属性的规则验证&#xff0c;这篇文章就来讨论为什么 注解 值得你去学习&#xff0c;以…

2020年中国.NET开发者大会第二天 WorkShop

工作坊1&#xff1a;使用 NCF 从 0 到 1 快速模块化开发/部署业务系统实战工作坊简介&#xff1a;本次工作坊由盛派开发团队亲自带领开发者使用 NCF&#xff08;NeuCharFramework&#xff09; 框架进行系统快速开发&#xff0c;进行现场实操训练&#xff0c;大家可以通过本次活…

mysql直接生成excel_MYSQL 将excel里面的数据直接生成sql语句

如何使用EXCEL生成SQL语句&#xff1f;将光标放到新的列上里面&#xff0c;然后在公式栏里面输入如下公式&#xff1a;"insert into t values("&A1&","&B1&","&C1&","&D1&")"效果图&#x…