Why does NaCl dissolve in H2O despite its strong ionic bond?
The electrostatic forces between the positive cations and anions are strong. Coulomb's Law expresses the potential energy of two charges separated by a distance. 

$$E_p = \frac{Q_1Q_2}{4\pi \epsilon_0 r} $$

As you may already know, water molecules stick to each other through dipole-dipole forces due to the permanent dipole that water faces due to the high electronegativity of the oxygen atom. 

As ionic solids are added to water, water molecules proceed to surround each ion on the surface of the solid, forming a sphere of hydration. In the process, ions are separated from each other.

The $\delta^-$ charge on the oxygen atoms of water are attracted to cations and inversely, repels the $\delta^+$ hydrogen atoms. Thus, for cations, the oxygens of water point inward, and for anions, the hydrogens face inward respectively. The most important thing is that the ion-dipole interactions and separation of ions with little change in energy.

We can relate the potential energy of the ions to the two partial charges of a polar molecule like water:

$$ E_p \propto - \frac{|z|\mu}{r^2}$$

Z is the charge number of the ion and $\mu$ is the dipole moment of the polar molecule. Potential energy is lowered by the interaction between the solvent molecules and the ion. The $r^2$ term indicates that the interaction between ions and dipoles depends more on distance than the charges between two ions.

Thus, for hydration to occur, ion-dipole interactions must occur at the surface of the ion, and thus, ion-dipole interactions are strong for small, highly charged ions such as $\ce{Mg^{2+}}$, $\ce{Li^{2+}}$ etc.

$\ce{AgCl}$ is very slightly soluble in water and will not dissociate into it's ions. $\ce{HF}$ is a weak acid thus it does not deprotonate easily.