组件传值方式
组件传值⽅式
组件传值
⽅式⼀:事件传值
利⽤this.$emit()实⽤⼦ -> ⽗组件传值,⼦组件向⽗级抛出⼀个事件,⽗组件来监听该事件// ⼦组件 Child.vue
methods: {
clickEvent() {
this.$emit('clickEvent', '我被点击了');
}
}
<!--⽗组件 HTML-->
<template>
<div>
<Child @clickEvent="clickEvent"></Child>
主页被篡改怎么办</div>
</template>
// ⽗组件
methods: {
clickEvent(e) {
console.log(e)  // '我被点击了'
}
}
⽅式⼆:属性传值
世界杯规则
利⽤props实⽤⽗ -> ⼦组件传值,⼦组件创建⼀个属性,⽗组件在调⽤⼦组件时传⼊属性值// ⼦组件
export default {
props: {
name: {
type: String,
default: ''
}
}
}还款逾期会怎么样
<!--⽗组件 HTML-->
<template>
<div>
<Child name="xxx"></Child>
</div>
</template>
⽅式三:URL动态路由
通过路由跳转传值,适⽤于需要路由跳转的情况
// router -> index.js
const routes = [
{
path: '/url/:id',
name: "URLDemo",
component: URLDemo
}
]
传值⽅式:
派乐汉堡加盟
this.$router.push('/user/xxx');
获取传递过来的值:
⽅式四:URL命名路由传值
通过路由跳转传值,适⽤于需要路由跳转的情况,并且参数不在URL路径上显⽰// router -> index.js
const routes = [
{
path: '/url',
name: "URLDemo",
component: URLDemo
}
]
传值⽅式:
this.$router.push({
name: 'URLDemo',
params: {
key: value
}
});
获取传递过来的值:
⽅式五:URL query⽅式
通过路由跳转传值,适⽤于需要路由跳转的情况,并且参数较多
// router -> index.js
const routes = [
{
path: '/url',
name: "URLDemo",
component: URLDemo
}
]
传值⽅式:
this.$router.push({
path: 'URLDemo',
query: {
key: value
}
});
周公解梦梦见狗咬我获取传递过来的值:
⽅式六:ref⽅式
利⽤this.$refs获取⼦组件的值或⽅法
<!--⽗组件 HTML-->
<template>
<div>
<Child ref="child"></Child>
</div>
</template>
获取⼦组件的值:
this.$  // xxx可以是⼦组件的⽅法名或变量名
⽅式七:$parent⽅式
利⽤this.$parent获取⽗组件的值或⽅法
this.$  // xxx可以是⽗组件的⽅法名或变量名
⽅式⼋:通知传值(⼴播传值)
1. 新建⼀个.js⽂件,创建⼀个vue对象并导出
import Vue from 'vue'
let vueEvent = new Vue();
export default vueEvent;
2. 在需要传递值的组件中导⼊并使⽤,使⽤$emit()抛出事件和值// 组件⼀
import vueEvents from '../model/vueEvent'
methods: {
commit() {
vueEvents.$emit('demoEvent', '我是Demo组件的值')
}
}
3. 在需要接收值的组件中导⼊并使⽤,使⽤$on()监听事件
// 组件⼆
import vueEvents from '../model/vueEvent'
created() {
vueEvents.$on('demoEvent', e => {
this.value = e  // e == '我是Demo组件的值'
轻薄为文哂未休})
}
⽅式九:localStorage⽅法
window.localStorage.setItem('key',value);  // 保存值
Item('key');  // 获取值

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。