There are couple ways to handle this
1.Approach 1 involves using a static resource file to store all the global values
Here is how a code in your static resource look like
(function(w){
"use strict"; //Optional because LC on LockerService active runs in strict mode
var globalConstants = {
"variable1":"abc",
"variable2":"zyz"
};
w.globalvalues = globalConstants;
})(window);
And then in lightning component you will use like below
ltng:require scripts="{!$Resource.TestScript}" afterScriptsLoaded="{!c.afterScriptsLoaded}" />
<ui:button label="Do job" press="{!c.populateConstants}"/>
The controller
populateConstants : function(cmp){
globalvalues.variable1;
globalvalues.variable2;
}
Note you can use this on all init handler to load this data
2.Use an attribute in Parent component and then trickle down the attribute in all the components like below
<attribute name="constant" type="String" default="Hello"/>
The child will have similar attribute and you will call like below
<c:childcomponent constant="{!v.constant}"/>
Try using lightning events.
If you trigger an application event on your Actions lightning component, then you need to listen to that event on your other component for refreshing it.
Now - because your other component is a VF page and not a real component, you are in a problem.
So if you can migrate that VF page into a component, you can implement an event listener over there.
Best Answer
Currently actions can only be added to a Lightning page, not a Lightning component. If you can add your component to a Lightning page you would then be able to add actions to the page.