vue 传值 vue 三种传值方法

jQuery

https://blog.csdn.net/Wave_explosion/article/details/121855584

深拷贝:

https://blog.csdn.net/Wave_explosion/article/details/121858994

vue 三种传值方法

第一种:父传子

父:

<template>

  <div> 父组件: <input type="text" v-model="val">(v-model双向绑定)

   <!-- 这里是引入子组件 -->

  <child :inputName="name"></child> </div>

</template>

<script>

  import child from './child'

  export default {

    components: { child },

    data () {

      return {

        val: ''

      }

     }

  }

</script>

子组件

<template>

  <div> 子组件: <span>{{inputName}}</span> </div>

</template>

<script>

export default {

  // 接受父组件的值

  props: {

     inputName: String,

     required: true

  }

}

</script>

子传父

子:

<template>

  <div> 子组件: <span>{{childValue}}</span> <!-- 定义一个子组件传值的方法 --> <input type="button" value="点击触发" @click="childClick"> </div>

</template>

<script>

export default {

  data () {

    return {

      childValue: '我是子组件的数据'

     }

   },

   methods: {

     childClick () {

       // childByValue是在父组件on监听的方法 // 第二个参数this.childValue是需要传的值

       this.$emit('childByValue', this.childValue)

    }

  }

}

</script>

父:

<template>

  <div> 父组件: <span>{{name}}</span> <br> <br> <!-- 引入子组件 定义一个on的方法监听子组件的状态--> <child v-on:childByValue="childByValue"></child> </div>

</template>

<script>

import child from './child'

export default {

  components: { child },

  data () {

    return { name: '' }

  },

  methods: {

    childByValue: function (childValue) {

      // childValue就是子组件传过来的值

      this.name = childValue

    }

  }

}

</script>

非父子间传值

(tip:需通过新定义个vue实例去传值通过bus.js文件,该文件是你自己新建的文件,随你放在那里,但之后需

要引用,这个文件也可以用于兄弟间传值,简单的解释就是该文件相当于是一个中转站,它就是中间做处理

的,用来传递和接收的)

首先介绍下bus创建

let Hub = new Vue(); //一个新的vue实例,事件中心

下面为具体操作方法

触发传递参数

<div @click="xuanFn(5)"></div>
 
xuanFn: function(a){
    var that = this;
        Hub.$emit('name',a);//Hub触发事件
},
 

接收参数事件

<div></div>
created() {
    Hub.$on('name', (msg) => { //Hub接收事件
        this.xuanname= msg;
    });
}
**https://blog.csdn.net/Wave_explosion/article/details/118613794?spm=1001.2014.3001.5501**

****cookei:https://blog.csdn.net/Wave_explosion/article/details/118613794****
https://blog.csdn.net/Wave_explosion/article/details/118162649?spm=1001.2014.3001.5502

深拷贝:

https://blog.csdn.net/Wave_explosion/article/details/121858994
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue.js 中,组件之间可以通过 props 和事件实现传值。以下是传值的两种方式: 1. props props 是一种用于从父组件向子组件传递数据的方式。在父组件中使用子组件时,可以通过 props 属性向子组件传递数据,例如: ```html <!-- 父组件 --> <template> <div> <child-component :message="message"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { name: 'ParentComponent', components: { ChildComponent, }, data() { return { message: 'Hello', }; }, }; </script> ``` 在子组件中,可以通过 props 属性接收父组件传递的数据,例如: ```html <!-- 子组件 --> <template> <div> <p>{{ message }}</p> </div> </template> <script> export default { name: 'ChildComponent', props: { message: String, }, }; </script> ``` 2. 事件 事件是一种用于从子组件向父组件传递数据的方式。在子组件中,可以通过 `$emit` 方法触发一个自定义事件,并传递数据,例如: ```html <!-- 子组件 --> <template> <div> <button @click="handleClick">Click me</button> </div> </template> <script> export default { name: 'ChildComponent', methods: { handleClick() { this.$emit('child-click', 'Hello'); }, }, }; </script> ``` 在父组件中,可以通过 `v-on` 指令监听子组件触发的自定义事件,并处理传递的数据,例如: ```html <!-- 父组件 --> <template> <div> <child-component @child-click="handleChildClick"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { name: 'ParentComponent', components: { ChildComponent, }, methods: { handleChildClick(message) { console.log(message); }, }, }; </script> ``` 通过事件的方式可以让子组件与父组件解耦,更加灵活。在实际开发中,可以根据实际需求选择合适的方式传递数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值