凡事都要脚踏实地去作,不驰于空想,不骛于虚声,而惟以求真的态度作踏实的工夫。以此态度求学,则真理可明,以此态度作事,则功业可就。——李大钊
✔ (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 状态动画 |
|
我们始终围绕是什么+为什么+怎么用 来输出所学收获 小结: 父子组件如果存在一个双向绑定的关系的时候,我们可以把刚才那种复杂的代码缩减成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指令,从而去简化你的代码。