vue 子组件如何每次进入触发方法?

现有一个父组件A,父组件下头两个子组件,B,C.子组件B,C通过隐藏或显示被显示出来。
在初次进入组件时会在beforeMount触发一个方法.再次进入不在触发方法。

问题:如何每次进入都会触发方法?

 <div>
                        <span v-if="changeFlageEdit">
                            <!--商品模块-->
                            <childGoodsEdit @toParGoodsValed='comeChildGoodsValed'
                                            v-bind:comePar = 'choiceList_arr_edit'>
                            </childGoodsEdit>
                        </span>
                        <span v-if="!changeFlageEdit">
                            <!--服务模块-->
                            <childServeEdit
                                v-bind:comeParSer = 'choiceList_arr_edit'
                                @toParServeVal='comeChildServeValed'>
                            </childServeEdit>
                        </span>
                    </div>
阅读 23.9k
4 个回答

v-if写在子组件上,子组件的created里面调用你需要用到的方法。v-if切换时重新创建渲染和销毁组件

watch: {

        '$route' (to, from) {
            //这个地方写逻辑代码
        }
    }

可以从父组件传递changeFlageEdit,子组件定义changeFlageEdit的props

调用
<A :isChangeFlageEdit="true/false"></A>

A.vue文件
<template>
    //A组件模版
</template>
<script>
export default {
 created () {
      this.changeFlageEdit = this.isChangeFlageEdit
 },
 data () {
  return {
    changeFlageEdit: true
  }
 },
 props: {
   isChangeFlageEdit: {
     type: Boolean,
     default: true
   }
 },
 watch: {
  changeFlageEdit: function (newValue) {
    console.log(newValue)
  }
 },
 ...
}
</script>

1在父级,点击切换的时候直接调用子组件的方法,
2就是把切换状态的字段传给子组件,子组件在watch该字段的状态,当符合情况的时候在触发方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题