V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
midknight
V2EX  ›  问与答

Vue 如何优雅地获取子组件的数据?

  •  
  •   midknight · 2019-12-03 17:54:17 +08:00 · 1857 次点击
    这是一个创建于 1851 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前在写某后台管理系统项目中的表格组件。该组件会根据传入的对象类型向后台请求对应对象的列表并进行渲染。问题是,当这个组件的父组件需要获取它的对象列表时,直接如下面这样获取:

    var objs = this.$refs.objTable.objs
    

    是否足够合适(优雅)? 目前还没考虑用 vuex,感觉项目规模不大。

    6 条回复    2019-12-04 10:44:41 +08:00
    Jarvis0
        1
    Jarvis0  
       2019-12-03 18:28:25 +08:00
    项目规模不大,不用过度追求优雅了,这样就 OK
    Jarvis0
        2
    Jarvis0  
       2019-12-03 18:29:56 +08:00
    当然可以通过获取数据成功后,`&emit`一个事件把数据传到父组件管理
    hoyixi
        3
    hoyixi  
       2019-12-03 18:43:23 +08:00
    数据应该由父组件传递给子组件,或者集中管理( Vuex )。否则各个子组件胡乱维护数据,很快乱套
    fhw12372
        4
    fhw12372  
       2019-12-04 09:41:35 +08:00
    2l 正解,应该也是官方推荐用法
    Newyorkcity
        5
    Newyorkcity  
       2019-12-04 10:26:47 +08:00 via Android
    midknight
        6
    midknight  
    OP
       2019-12-04 10:44:41 +08:00
    @fhw12372 想了想有道理,子组件获取是网络请求,的确应该以事件形式异步传递。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2752 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:38 · PVG 19:38 · LAX 03:38 · JFK 06:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.