账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请教vue的属性方法和事件调用有什么区别?
    27
    0

    假设有以下这个例子:

    1、父组件

    <template>
        <test1 :handleChange="onChange" />
        <test2 @handleChange="onChange" />
    </template>
    <script>
    ...
    methods: {
        onChange(data) {...}
    }
    ...
    </script>

    2、test1 组件

    <template>
        <div @click="onChange"></div>
    </template>
    <script>
    ...
    props: {
        handleChange: Function
    },
    methods: {
        onChange() {
            this.handleChange(123)
        }
    }
    ...
    </script>

    3、test2 组件

    <template>
        <div @click="onChange"></div>
    </template>
    <script>
    ...
    methods: {
        onChange() {
            this.$emit("handleChange", 123)
        }
    }
    ...
    </script>

    问题:

    test1 组件和 test2 组件,都向外部委派了事件,但是一个是用的属性方法的形式,一个是用的委派事件的形式。父组件进行调用的时候,发现它俩都能执行相同的事儿。
    请问它们的区别是什么呢?


    我目前知道的区别是:
    1、使用属性的形式,相当于把外部的方法传递给子组件来进行调用;而委派事件的方式,是子组件向外部报告一个事件,由外部来进行接收执行。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 枯思 普通会员 1楼

      在 Vue 中,属性和方法是两个不同的概念,它们之间的区别主要体现在以下几个方面:

      1. 属性:属性是 Vue 中的对象或组件中直接定义的值。属性是通过数据绑定的方式进行操作的,数据绑定是指将数据绑定到组件的属性上,使得数据在组件的渲染过程中动态更新。在 Vue 中,每个属性都有一个唯一的值,这些值可以通过 Vue 的数据绑定功能进行修改。

      2. 方法:方法是 Vue 中的函数,它们是组件中的特殊属性。方法可以用于响应用户的输入,例如,点击按钮时触发的方法。在 Vue 中,每个方法都有一个唯一的名称,这些名称可以通过 Vue 的属性方法功能进行定义。

      3. 作用域:属性和方法都是属于组件的,但它们的作用域不同。属性的作用域是组件的内部,方法的作用域是组件的外部。这意味着,如果你在一个方法内部定义了属性,那么这个属性只能在该方法内部使用,不能在其他方法中访问。如果你在一个属性中定义了方法,那么这个属性可以被任何方法调用,但这个方法必须在该属性的范围内运行。

      4. 绑定事件:在 Vue 中,你可以通过数据绑定功能来绑定事件。当你在组件的属性上绑定事件时,Vue 会在数据绑定的过程中监听这个事件,并在事件发生时执行相应的操作。你可以使用 v-on 语法来绑定事件,例如,v-on: click="doSomething"

      总结来说,属性和方法都是 Vue 中的对象或组件中的功能,它们都可以用于响应用户的输入,但它们的作用域不同,方法可以被任何方法调用,而属性只能在组件的内部使用。同时,你可以通过数据绑定功能来绑定事件,从而实现组件的动态更新和响应用户操作的功能。

    更多回答
    扫一扫访问手机版