Vue.js组件间调用及传值 2020最新更新

Vue.js中,对于父子组件、平级组件间的事件触发、传值等。

调用

父组件

<button @click="trigger_child">点击触发子组件方法</button>
<Child ref="my_child">子组件</child>
methods: {
    trigger_child() {
        const param = '需要传递到子组件相应方法的参数内容'
        this.$refs.my_child.child_method(param)
    }
}

子组件

methods: {
    child_method(event) {
        console.log(event)
    }
}

子组件调用父组件

子组件

触发父组件submit事件,并传递content作为参数

this.$emit('submit', content)

父组件

子组件触发父组件submit事件时,调用submit_form方法,并声明传入的参数名为item

<Child :value="item" @submit="submit_form" />
methods: {
    submit_form(item) {
        console.log(item)
    }
}

传值

原理
https://vuejs.org/v2/guide/components.html#Using-v-model-on-Components

父组件

<custom-input v-model="任何data中属性名"></custom-input>

子组件

通过props中名为value的属性接收,通过触发父组件的input事件来传递值

props: {
    // 必须通过名称为“value”的键获取
    value: {
        type: String // 传入的属性值的实际类型
        default: ''
    }
}

template中通过DOM的input事件触发

<input
  v-bind:value="value"
  v-on:input="$emit('input', $event.target.value)"
>

scripts中通过代码显式调用

methods: {
    method_name() {
        this.$emit('input', '任意想赋给父组件相应data属性的值')
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Vue 实例 属性和方法 每个 Vue 实例都会代理其 data 对象里所有的属性:var data = { a:...
    云之外阅读 6,646评论 0 6
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,714评论 0 17
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 10,633评论 0 21
  • 什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装...
    youins阅读 13,159评论 0 13
  • 算数运算符 递增/递减运算符 比较运算符 逻辑运算符 三元运算符 组合比较符(PHP7+) 位运算符 运算符优先级
    henryspace阅读 3,746评论 0 0