US President Donald Trump has imposed a 25% tariff on Canadian and Mexican imports and a 10% on goods from China.