A few tips: first poke her/her adc hard lvl 1. Leona can't do anything until lvl 2, so if they have a health disadvantage when they hit lvl 2, her all in will be much worse.
If you see her cast her W (the shield) get ready to dodge because she will probably cast E soon. If the shield expires without her landing E, that is a good time to trade with her.
If you are near your tower and get hit with Leona E, you can flash under your tower to bring her with you and potentially kill her. This works best early game before she gets tanky.
Knockups/displacments can cancel leona E if you time them properly. For instance, if a Janna Q hits leona while she is dashing to her E target leona will stop her dash.
Ask for jungle ganks: Leona tends to go in hard a lot so if your jungler is their when she engages it's a free kill.
Play under tower: in the early game tower dives are hard, so if you just let them push you in leona is useless since she has no poke or sustain, only engage.
CC the enemy adc when Leona engages: If your adc gets hit by leona combo, the best thing to do is generally cc or zone off the enemy adc so they can't follow up on leona's engage. Leona shoudn't be able to do that much damage by herself after the first few levels.
Watch her mana bar: In the early game leona combo costs aroudn 165 mana. She usually has enough mana to go in twice, then will have to wait before a third engage. So if you see she has less than 165 mana, you can be more aggresive as she can't cast all her basic abilities without that much mana.
It's generally best to pick disenage or tanky champs agasinst leona like janna or alistar. Soraka and Sona tend to do very poorly against leona because they have no pre-6 hard cc and are squishy.