2016-02-11 60 views
3

的HMR API中的WebPack文档中提到了以下方法:HMR - 接受多个依赖

accept(dependencies: string[], callback: (updatedDependencies) => void) => void 

我明白,我怎么能接受一个单一的依赖,但我不能确定多依赖回调应该怎么样子。

这里是我的代码:

var $ = require('jquery') 
var page = require('page') 
var index = require('./index') 
var home = require('./home') 

$(function() { 
    page('/', index) 
    page('/home', home) 
    page() 

    if (module.hot) { 
    module.hot.accept(['./index', './home'], function(updatedDependencies) { 
     // what should I put in here? 
    }) 
    } 
}) 

回答

4

在回答这个拍摄一个镜头,因为没有其他人尝试过。

从看你的代码看起来很好。

回调方法在接受多个依赖关系后运行。 您基本上发送一个函数作为参数,然后一旦所有的依赖被接受,该函数就会被执行。

所以你几乎可以放任何你喜欢的功能。例如:

if (module.hot) { 
    module.hot.accept(['./index', './home'], function() { 
     alert('all the dependencies have been accepted'); 
     console.log('all the dependencies have been accepted'); 
    }); 
}; 

在该示例中,一旦接受方法运行并已完成它会执行回调函数,在这种情况下发送警报和消息记录到控制台。

所以,简而言之,替换'//我应该在这里放什么?'随着代码的继续,一旦依赖关系被接受。

我在你的回调中看到你有一个参数'updatedDependencies',你可以在你的回调方法的第一行调试并放置一个断点,并将鼠标放在'updatedDependencies'参数上以查看它是否包含任何内容 - if它确实如此,你可以相应地处理这些数据。

希望这会有所帮助。