为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第7天 vue基础入门(中)

标签:
Vue.js

凡事都要脚踏实地去作,不驰于空想,不骛于虚声,而惟以求真的态度作踏实的工夫。以此态度求学,则真理可明,以此态度作事,则功业可就。——李大钊

模块名
描述
课程名称
前端工程师2022版
课程章节
vue基础入门(中)
打卡知识进程
知识进程:1 / 3
✔ (1)1-1 组件的定义及复用性,局部组件和全局组件(1)
✔(2)1-2 组件的定义及复用性,局部组件和全局组件(2)
✔(3)1-3 组件间传值及传值校验
✔ (4)1-4 单项数据流的理解
✔(5)1-5 Non-Props 属性是什么
✔(6)1-6 父子组件间如何通过事件进行通信(1)
✔(7)1-7 父子组件间如何通过事件进行通信(2)
(8)1-8 组件间双向绑定高级内容(选学)
(9)1-9 使用插槽和具名插槽解决组件内容传递问题(1)
(10)1-10 使用插槽和具名插槽解决组件内容传递问题(2)
(11)1-11 作用域插槽
(12)1-12 动态组件和异步组件
(13)1-13 基础语法知识点查缺补漏
(14)2-1 使用 Vue 实现基础的 CSS 过渡与动画效果
(15)2-2 使用 transition 标签实现单元素组件的过渡和动画效果(1)
(16)2-3 使用 transition 标签实现单元素组件的过渡和动画效果(2)
(17)2-4 使用 transition 标签实现单元素组件的过渡和动画效果(3)
(18)2-5 组件和元素切换动画的实现
(19)2-6 列表动画
(20)2-7 状态动画
主讲老师
Dell
学习开始时间
2022.09.11 10:24
学习结束时间
2022.09.11 11:24
总计时
60min
课程收获

我们始终围绕是什么+为什么+怎么用
来输出所学收获
小结:
父子组件如果存在一个双向绑定的关系的时候,我们可以把刚才那种‍‍复杂的代码缩减成v-model 这样简写的代码,最简洁的方式就会变成这样的样子。‍‍好,遇到这块的点,如果大家在项目中会遇到‍‍一些双向绑定的情况的时候,可以考虑自己去写子组件的时候,在里面借助‍‍ update:modelValue这样的默认的语法,然后实现一个v-model指令,从而去简化你的代码。‍‍
学习感受/感想/领悟(心得)
如何训练自己的专注?如何提高自己的效率?感觉自己学得慢,干扰太多,思考变浅。

课程内容:
2022.09.11的学习内容:

vue基础入门(中)

1-7 父子组件间如何通过事件进行通信(2)

代码示例:

我们现在写的代码是父组件 向子组件传递了一个‍‍ count 这样的数据,子组件触发一些事件,再去改变子组件里面的数据,‍‍它很类似于我们之前讲过的一个语法叫v-杠model。

我们回想一下v-model怎么用的?‍‍‍‍当时我们用的是input框这种形式,比如说input v-model等于text这样的写法,‍‍代码示例如下:

它的意思是什么?它的意思是input这个标签它里面的value值‍‍和我的text数据应该在这里定一个数据,比如说hello world,‍‍【第15行】

我的input显示的内容和text数据做了一个双向绑定,数据变,‍‍我input的值就会变,
而input触发一些事件的时候,我也会回过来‍‍改变text里面的数据。

所以和我们现在的 counter 是不是一样的?‍‍counter 接受一个数据,当这个数据发生变化的时候,counter的展示会变,counter触发一些事件的时候,‍‍同样反过来也会改变你数据里面的 count,所以它用v-model去做一些表示是很类似的,‍‍我们就会想我们现在的代码能不能通过v-model来对它进行简化?实际上是可以的。

如果我想简化我要怎么写?‍‍首先在这里面我的 count‍‍就不能作为参数来传递了。‍‍【第24行】
首先我们要把 count 改成modelValue,实际上就是改一个传递参数的名字,‍‍这块我接收也变成modelValue,我展示也变成modelValue。
代码示例:

当我点击的时候会触发事件,触发的事件也不叫做 add 这个事件了,我们把它叫做update冒号modelValue,‍‍

然后在第19行写 v-model‍‍等于count就可以了。‍‍

代码示例:

当你点击的时候,你触发 modelValue 事件,这块你要用this点modelValue,‍‍
这段代码怎么去理解它?

首先我定义了一个数据叫做count,我把它传递给子组件,通过v-model传递给子组件,
子组件 如果能够通过v-model去使用 count的话,要满足几个点:

第一个点是你接收的参数,‍‍名字必须叫做modelValue,这是一个约定俗成的规则,是个写死的值。如果你写成其他的内容,‍‍比如说你改成modelValue1,你会发现它就不好用了,大家可以自己试试,我就不试了,是肯定的。

modelValue 是一个固定的名字,‍‍然后在里面就可以直接用 modelValue了,通过v-model指令,它就会把modelValue传过来,‍‍点击的时候你要向外触发事件,触发事件的这个名字,一定要叫做update:modelValue,‍‍这也是固定的一个名字

你会向外触发一个值,这个值实际上‍‍触发到父组件之后,就会自动的把以前的 count 给它替换掉。‍‍这就是当我去组件上面写v-model指令的写法,

当然有的时候比如说我不想让它叫做modelValue,‍‍我可以怎么写?
代码示例:

我可以给它起成比如说就叫app,【注意牵一发动全身,就是这里改了其他地方是不是也要改?问问自己这个问题】

如果我想这样把它传递过来的参数换一个名字,‍‍我可以怎么办?
我可以在v-model后面加一个冒号:app,它就会把你传递过来的参数名字改成app:

所以父子组件如果存在一个双向绑定的关系的时候,我们可以把刚才那种‍‍复杂的代码缩减成v-model 这样简写的代码,最简洁的方式就会变成这样的样子。‍‍

好,遇到这块的点,如果大家在项目中会遇到‍‍一些双向绑定的情况的时候,可以考虑自己去写子组件的时候,在里面借助‍‍ update:modelValue这样的默认的语法,然后实现一个v-model指令,从而去简化你的代码。‍‍

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消