当前位置:   article > 正文

vue组件通信---子传父(ref方式)_vue子组件获取父组件的ref

vue子组件获取父组件的ref

  描述:

1.在子组件标签上使用“ref”获取子组件的dom信息;

2.在子组件中调用其他函数,使用 this.$emit(‘事件名’,参数) 的方法触发事件;

3.子组件的参数被传递出去,父组件接收到参数;

子组件son.vue代码如下:

  1. <template>
  2. <div class="son">
  3. <button @click="sendnumber">sendnumber</button>
  4. </div>
  5. </template>
  6. <script>
  7. export default {
  8. name: 'son',
  9. data () {
  10. return {
  11. num:10
  12. }
  13. },
  14. methods: {
  15. sendnumber(){
  16. //this.$emit(‘事件名’,参数) 的方法向父组件传值
  17. this.$emit('addnumber',this.num)
  18. }
  19. },
  20. }
  21. </script>

 父组件parent.vue代码如下:

  1. <template>
  2. <div class="parent">
  3. <son ref="sonMsg"></son>
  4. </div>
  5. </template>
  6. <script>
  7. import son from './son' //引入子组件
  8. export default {
  9. name: 'parent',
  10. components:{son}, //使用子组件
  11. data () {
  12. return {
  13. addnumber: ''
  14. }
  15. },
  16. mounted(){
  17. this.$refs.sonMsg.$on('addnumber', num =>{
  18. console.log(num+10);
  19. this.addnumber = num+10;
  20. })
  21. }
  22. /*错误写法
  23. // 需要注意,$on中定义的函数this是指向调用该事件的组件,也就是子组件
  24. // 使用箭头函数可以避免this指向 “错误”
  25. mounted(){
  26. this.$refs.sonMsg.$on('addnumber', function(num){
  27. console.log(num+10)
  28. this.addnumber = num+10
  29. })
  30. }*/
  31. }
  32. </script>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/133934
推荐阅读