当前位置:   article > 正文

vue父子组件相互调用方法和获取data中的数据_vue获取整个组件的data数据方式

vue获取整个组件的data数据方式

1、父组件获取子组件data数据和子组件方法。
给子组件标签加ref,然后通过this.$refs.childData.方法。

  1. <template>
  2. <!-- 父组件 -->
  3. <div>
  4. <Header ref="childData"></Header>
  5. </div>
  6. </template>
  7. <script>
  8. import Header from "../../components/header"
  9. export default {
  10. components:{
  11. Header
  12. },
  13. data() {
  14. return{
  15. }
  16. },
  17. mounted(){
  18. this.initData()
  19. this.initFun()
  20. },
  21. methods:{
  22. // 获取子组件中data的数据
  23. initData(){
  24. console.log(this.$refs["childData"].childrenData)
  25. },
  26. // 获取子组件中的方法
  27. initFun(){
  28. this.$refs.childData.handeCon()
  29. }
  30. }
  31. }
  32. </script>
  1. <template>
  2. <!-- 子组件 -->
  3. <div class="header">
  4. <ul>
  5. <li v-for="(item,index) in list" :key="index">{{item}}</li>
  6. </ul>
  7. </div>
  8. </template>
  9. <script>
  10. export default{
  11. name:"Header",
  12. data() {
  13. return {
  14. list:["首页","沸点","课程","直播","活动"],
  15. childrenData: "我是子组件data中的数据"
  16. };
  17. },
  18. mounted(){
  19. this.handeCon()
  20. },
  21. methods:{
  22. handeCon(){
  23. console.log("我是子组件中的方法")
  24. }
  25. }
  26. }
  27. </script>
  28. <style scoped>
  29. li{list-style: none;}
  30. ul{
  31. display: flex;
  32. justify-content: space-between;
  33. width: 1200px;
  34. margin: 0 auto;
  35. }
  36. </style>

2、子组件获取父组件data数据和子组件方法。
子组件通过this.$parent.方法获取

  1. <template>
  2. <!-- 父组件 -->
  3. <div class="box" style="margin:20px">
  4. <child ref="childData"></child>
  5. </div>
  6. </template>
  7. <script>
  8. import Header from "../../components/header"
  9. export default {
  10. components: {
  11. child,
  12. },
  13. data() {
  14. return {
  15. str: {
  16. name: "猪小凡",
  17. age: 18,
  18. title: "父组件数据",
  19. },
  20. };
  21. },
  22. created() {
  23. },
  24. methods: {
  25. handelAA() {
  26. alert("我是父组件方法");
  27. },
  28. },
  29. };
  30. </script>

  1. <template>
  2. <!-- 子组件 -->
  3. <div class="box">
  4. <button @click="handelFuZuJian">点击</button>
  5. </div>
  6. </template>
  7. <script>
  8. export default {
  9. data() {
  10. return {
  11. };
  12. },
  13. created() {
  14. this.getListDara();
  15. },
  16. methods: {
  17. getListDara() {
  18. console.log(this.$parent.str, "str");
  19. },
  20. handelFuZuJian() {
  21. this.$parent.handelAA();
  22. },
  23. },
  24. };
  25. </script>

原文 vue父子组件相互调用方法和获取data中的数据_vue获取子组件的data_qq_42695727的博客-CSDN博客

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

闽ICP备14008679号