vue子父传值

今天让我写个基于vue的系统管理员授权拆分的功能,一开始我是真的难,非常难过,因为这块代码很乱,功能也很怎么说,其实客户需求还是可以的,只不过从原代码改造,非常恶心。

但是经过一下午的努力奋战, 我完成了 并且我对vue的父子传值有了更深的认识和理解 其实就是三把斧 很开心

父传子(父页面调子页面):

就是用父页面
<adminList ref="addModule"
                 @func="getmessage" ></adminList>

import adminList from './set-as-admin-list'

components: {
      adminList
    },

在方法里,这里一定要别拉下this.$nextTick(()=>{})

因为这个地方相当于子组件的一个延迟加载方法,否则会报undefined 详情原因见

Vue父组件引用子组件方法显示undefined问题原因及解决方法

this.$nextTick(() => {
          this.$refs.addModule.init(this.struId, this.organId, false)
        })

这里的$refs.addModule,相当于操作dom,就是操作子组件的里面的方法或者值

子页面
init (struId, organId, isAdmin) {
        debugger
        this.isAdmin = isAdmin
        this.struId = struId
        this.organId = organId
        this.getPersonList(struId)
      },

,上面就是把父页面的struId,organId,false传给了子页面,并且,还顺便调用了子页面的方法。

并且值得注意的是,可以同一个组件在父页面用好几遍,只不过,ref="不同的值"

父页面
<adminList ref="authorizationModal"
                 @func="getmessage" ></adminList>

子传父:

也很简单,

子页面

在方法里

this.$emit('func', data)
父页面去接
<adminList ref="authorizationModal"
               @func="getmessage" ></adminList>

其中func是要传的key

value就是用"getmessage"去接收,这里是方法

getmessage (data) {
        this.authorizationVisible = data

      },

这样就把子页面的data传给了父页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值