版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
n我们知道,在模板中可以直接通过插值语法显示一些data中的数据n但是在某些情况,我们可能需要对数据进行一些转化后再显示,或者需要将多个数据结合起来p比如我们需要对多个data数据进行运算、三元运算符来决定结果、数据进行某种转化p在模板中使用表达式,可以非常方便的实现,但是设计它们的初衷是用于简单的运算p在模板中放入太多的逻辑会让模板过重和难 pn我们有没有什么方法可以将逻 出去呢p可以,其 式就是将逻辑抽取到一个method中,放到methods的options中p但是,这种做法有一个直观的弊端,就是所有的data使用过程都会变成了一个方法的调用p另 式就是使用计算属性
n p而是说:对于任何包含响应式数据的复杂逻辑,你都应该使用计算属性p计算属性将被混入到组件实例中。所有getter和setter的thisnpp类型:{[key:string]:Function|{get:Function,set:Functionn
nn案例一:我们有两个变量:firstName和lastName,n案例二:我们有一个分数p当score大于60p当score小于60n案例三:我们有一个变量message,记录一段文字:比 oppnp思路一:在模板语法中直接使用表达式;p思路二:使用method对逻辑进行抽取;p思路三:使用计算属性computed;
np缺点一:模板中存在大量的复杂逻辑,不便 (模板中表达式的初衷是用于简单的计算pp
n思路二的实现:methodp缺点一:我们事实上先显示的是一个结果,但是都变成 法的调用p
n思路三的实现:computedp注意:计算属性看起来像是一个函数,但是我们在使用的时候不需要加(),这个后面讲setter和getterpp
vsn在上面的实现思路中,我们会发现计算属性和methods的实现看起来是差别是不大的,而且我们多次提到计算属n接下来我们来看一下同一个计算多次使用,计算属性和methods
np这是因为计算属性会基于它们的依赖关系进行缓存p在数据不发生变化时,计算属性是不需要重新计算p但是如果依赖的数据发生变化,在使用时,计算属性依然会重新进行计算
n计算属性在大多数情况下,只需要一个getter方法即可,所以我们会将计算属性直接写成一个函数n但是,如果我们确实想设置计算属性的值p这个时候我们也可以给计算属性设置一个setter的方法
n你可能觉得很奇怪,Vue内部是如何对我们传入的是一个getter,还是说是一个包含setter和getter的对象进行处p事实上非常的简单,Vue
n什么是 呢p开发中我们在data返回的对象中定义了数据,这个数据通过插值语法等方式绑定到 p当数据变化时 te会自动进行更新来显 的数据p但是在某些情况下,我们希望在代码逻辑 某个数据的变化,这个时候就需要用 watch来完成了n 的用法如下pp类型:{[key:string]:string|Function|Object|
n举个栗子(例子p比如现在我们希望用户在input中输入一个问题p每当用户输入 的内容,我们就获取 的内容,并且使用该问题去服务器查询答案p那么,我们就需要实时的去获 的数据变化
np当我们点击按钮的时候会修改p这个时候我们使用watch来侦听info,可以侦听到吗?答案是不可以n这是因为默认情况下,watch只是在侦听info 变化,对于内部属性的变化是不会做出响应的p这个时候我们可以使用一个选项deep进行 的侦听p注意前面我 watch里面侦听的属性对应的也可以是一个n还有另外一个属性,是希望一开始的就会立即执行一次p这个时候我们使用immediate选项pn
n另外一个是Vue3文档中没有提到的,但是Vue2n还有另 式就是使用$watch的n我们可以在created的生命周期(后续会讲到)中,使用this.$watchs来侦听;pp第二个参数是侦听的回调函数p第三个参数是额外的其他选项,比如deep、
n现在我们来做一个相对综合一点的练习:np1.p2.p3.点击+或者-可以增加或减少书籍数量(如果为1,那么不能继续-p4.点击移除按钮,可以将书籍移除(当所有的书籍移除完毕时,显示:购物车为空
n表单提交是开发中非常常见的功能,也是和用户交互的重 p比如用户在登录 时需要提交账 p比如用户在检索、创建、更新n这些都要求我们可以在代码逻辑中获取到用户提交的数据,我们通常会使用v-model指令pvmodel指令可以在表单input、textarea以及select元素上创建双向数据绑定p它会根据控件类型p尽管有些神奇,但v-model本质上不过是语法糖,它负责
有说到,v-model的原理pvbind绑定valuepv-on绑定 到函数中,函数会获 的值赋值到绑定的属性中
n我们再来绑定一下其他的表单类型:textarea、checkbox、radio、n我们来看一下绑定
n我们来看一下v-model绑定checkboxnpv-modelp此时input的value并不影响v-modelnp当是多个复选框时,因为可以选中多个,所以对应的datap当选中某一个时,就会将input的value
nv-model绑定radio
npv-modelnpv-model
n目前我 面的案例中大部分的值都是在 te中固定好的p比如gender的两个输入框值male、p比如hobbies的三个输入框值basketball、football、n在真实开发中,我们的数据可能是来自服务器的,那么我们就可以先将值请求下来,绑定到data返回的对象中,p这里不再给出具体的做法,因为还是v-bind
v-modelnlazyp默认情况下,v-model在进行双向绑定时,绑定的是input p如果我们在v-model后跟上lazy修饰符,那么会将绑定的 切换为change
v-modeln我们先来看一下v-modelpmessage总是string类型,即使在我们设置type为number也是string类型n如果我们希望转换为数字类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2021年黑龙江省大兴安岭地区公开招聘警务辅助人员辅警笔试自考题2卷含答案
- 2022年广东省清远市公开招聘警务辅助人员辅警笔试自考题2卷含答案
- 2024年四川省遂宁市公开招聘警务辅助人员辅警笔试自考题1卷含答案
- 2022年福建省漳州市公开招聘警务辅助人员辅警笔试自考题2卷含答案
- 2022年广西壮族自治区梧州市公开招聘警务辅助人员辅警笔试自考题2卷含答案
- 2024年医用导管项目资金申请报告代可行性研究报告
- 广东省珠海市(2024年-2025年小学六年级语文)统编版随堂测试(下学期)试卷及答案
- 《戒烟治疗与COPD》课件
- 2024情侣共同应对家庭矛盾与沟通障碍解决方案协议合同3篇
- 2024年肉牛养殖场租赁与电商销售合作协议2篇
- 提升极端天气背景下的城市政府韧性治理能力
- 服务营销学教案
- 护理查房 小儿支气管肺炎
- 相关方安全管理培训
- 2023年中国雪茄烟行业现状深度研究与未来投资预测报告
- 皮带输送机巡检规程
- 辽宁省大连市沙河口区2022-2023学年七年级上学期期末语文试题(含答案)
- 心肺循环课件
- 东大光明清洁生产审核报告
- 生产计划排产表-自动排产
- 管理研究方法论for msci.students maxqda12入门指南
评论
0/150
提交评论