Loading
Component without Loading
import dash
import dash_html_components as html
import dash_core_components as dcc
import time

from dash.dependencies import Input, Output

app = dash.Dash(__name__)

app.layout = html.Div([
        dcc.Input(id="input", value='Input triggers local spinner'),
        html.Div(id="output")]
)

@app.callback(Output("output", "children"), Input("input", "value"))
def input_triggers_nested(value):
    time.sleep(1)
    return value

if __name__ == "__main__":
    app.run_server(debug=True)
		
Component with Loading
import dash
import dash_html_components as html
import dash_core_components as dcc
import time

from dash.dependencies import Input, Output

app = dash.Dash(__name__)

app.layout = html.Div([
        dcc.Input(id="input", value='Input triggers local spinner'),
        dcc.Loading(id='loading', children=html.Div(id="output"), type='default')]
)

@app.callback(Output("output", "children"), Input("input", "value"))
def input_triggers_nested(value):
    time.sleep(1)
    return value

if __name__ == "__main__":
    app.run_server(debug=True)