• 每日一学vue2:自定义绑定事件解除方式($off)及销毁vc


    自定义事件的解绑

    运用$off这个api来实现

    1.解绑一个自定义事件时

    举例:

    StudentLqj.vue:

    1. <template>
    2. <button @click="sendStudentName">把学生名给Appbutton>
    3. //上面是给app里的:(atlqj)做出的绑定事件
    4. <button @click="unbind">把学生名给Appbutton>
    5. //上面是给app里的:(atlqj)做出的解绑事件
    6. template>

    2.解绑多个自定义事件时

    我们再在app.vue里面定义一个事件demo
            所有在StudentLqj.vue里面的methods里面之前定义的函数(sendStudentName)需要在配置:
            this.$emit('demo')

            注意:如果我们相同时解除绑定这两个(或者你可以再写的多一些自定义绑定事件,道理都是一样的),
            需要借助子组件(StudentLqj.vue)中的:
           
            这个按钮,来与下面的按钮事件配合(如下):
            unbind(){
                    this.$off(['atlqj','demo'])
            }

            我们可以想一想,如果想解除一个自定义事件的话可以这样写:
            this.$off('atlqj')
            那如果我们要接触多个自定义事件的话,我们是不是可以通过一个数组的形式来将他们写到一块,然后再接触绑定?
            o~k!没错滴!
            详细代码如下:

    App.vue:

    1. <template>
    2. <StudentLqj v-on:atlqj="getStudentName" @demo="m1">StudentLqj>
    3. template>
    4. <script>
    5. methods:{
    6. getStudentName(name){
    7. console.log('App收到了学生名:',name)
    8. },
    9. m1(){
    10. console.log('demo事件被触发了!')
    11. }
    12. },
    13. ...
    14. script>

    StudentLqj.vue:

    1. <template>
    2. <button @click="sendStudentName">把学生名给Appbutton>
    3. <button @click="unbind">把学生名给Appbutton>
    4. template>
    5. <script>
    6. ...
    7. methods:{
    8. sendStudentName(){
    9. this.$emit('atlqj',this.name)
    10. this.$emit('demo')
    11. },
    12. unbind(){
    13. this.%off(['atlqj','demo'])
    14. }
    15. }
    16. script>

     注意:this.$off()是解绑默认的所有自定义事件的值

            列表:
            this.$off('xxx')解除一个xxx自定义绑定事件
            this.$off(['xxx','yyy'])解除xxx和yyy自定义绑定事件
            this.$off()默认解除所有的自定义绑定事件

    3.组件实例对象(vc)销毁

    如果一个组件的的实例对象(vc)被销毁了,那它身上的组件自定义组件也就跟着不起作用了!

    StudentLqj.vue:

    1. <template>
    2. <button @click="sendStudentName">把学生名给Appbutton>
    3. <button @click="death">销毁student子组件的vcbutton>
    4. template>
    5. <script>
    6. ...
    7. death(){
    8. this.$destroy()//销毁了当前的student组件实例(vc)
    9. }
    10. ...
    11. script>

    如果点击销毁当前子组件的按钮,不需要点击解绑的按钮,自定义绑定事件则不起作用,
            因为子组件的vc都没有了!

    只要路飞还在笑,我的生活没烦恼!

  • 相关阅读:
    复盘-----vue
    深度学习——循环神经网络
    R语言在vector向量数据的指定位置添加元素、被跳过的位置自动赋值为缺失值NA
    PLC有几种编程语言以及它们的特点是什么
    【JUC】六、辅助类
    项目版本号大小比较,找出最大版本号
    518. 零钱兑换II(完全背包问题)
    windows 查看本地安装证书情况
    金山WPS:我们当年上了微软的当,现在终于扳回一局了
    ArcGIS 气象风场等示例 数据制作、服务发布及前端加载
  • 原文地址:https://blog.csdn.net/lbcyllqj/article/details/127082803