The book "How to talk to kids will listen, and listen so kids will talk" is great...even for adults.
You can get it at any bookstore or online like at Amazon.
3 is a harder age than 2. My son goes through that too. I do not give in & I gauge the situation. He knows. I do not give him a "treat" for every good behavior... because then they can sometimes just want treats, for anything.
I also talk with my son... but not in lengthy lecturing or "explanations." A child this age will not even listen for that long. Or, I count to 3. Then forewarn my son and give him a bit of time to think then do. Which kids need time sometimes to get ALL our "directions" and expectations, in their heads and then process it. Then, once I count to 3... my son usually has already cooperated... or he jumps in my lap and apologizes since he knows he was sorta uncooperative to begin with. Or, I tell my son to count to 10.... THEN I give him a chance to think, or redo what it is.
Kids also need times where their every action is not so instructed. Meaning... I give my kids the opportunity to think things over too. I say "Dinner in 15 minutes. You know what to do next...." Which means: they need to wind down their activity and wash their hands. Then come to the kitchen. So, in other words, I am not TELLING them or NAGGING them about what to do, for every little thing or every little thing that I want them to do all day. But I do keep track if they diverge. I often will praise them too, when they think on their own and problem-solve on their own. Even if it is not the way that "I" would do it.
If he is not eating veggies. That's fine. Does he take vitamins? Or, try giving him V-8. My daughter and son like that. Or, prepare it differently. Give him dips with it. But if he does not eat it, there is no point in having a battle about it. Kids will go through MANY food likes and dislikes... so this is just the itp of the iceberg. I was "forced" to eat, by a school Teacher when in Elementary school. The kids hated her. She eventually got fired because lots of parents complained about her. Eating should not be a "battle." That is not the point of meal time with the family. AND, for me, a child does not have to eat a certain amount of food everyday, at every meal. Even adults have VARYING appetites too, every day, and at meal times. So, to me, if I am not real hungry at dinner, I should not in turn expect my child to eat everything on their plate... because I would NOT like it if my Husband told me I couldn't leave the table unless I ate a certain amount which HE deemed to be satisfactory. A child, will not starve. Their appetites vary. Just like any adult. The POINT for eating, should be that a child learn about their body "cues." IF they are hungry and if they are "full"... they should go by their body. Not just eating because they have to.
I would not, make "dessert" an end all to dinner. If you or Hubby get to have dessert.. then you both should eat by your rules too. EVERYONE should have the same "rules" for dinner. Because as you see... he is just thinking about dessert first... and I wouldn't blame him, a 3 year old... just can't wait for dessert. I know many adults that way too. So, just make it a no-big-deal sort of thing. And phase out "dessert" as a "reward" or end-all to eating dinner. The focus is on the important part of the meal.
In a 3 year old... "full" impulse control is not even fully developed yet either. If "treats" are always the focus... then that is what a child will focus on... not the "moral" of the whole lesson like an Aesop's fable type lesson. The point of it all gets lost.
The book "Your 3 Year Old" is good, from www.amazon.com
Also remember that, certain routines can be very comforting and "special" for a child, and I can understand why he gets upset if a part is skipped. It is "his" routine. And he likes it. If you take it away... then, yes, he will get upset. But if the routine is getting LONGER and longer... it is up to you to not let it get longer. Don't let him decide. Put on an egg-timer.
Sometimes, when kids get TOO much leeway too, they will make things stretched out and take longer and longer. At this age, they have NO concept of time... so, take that into consideration. They don't know what 5 minutes feels like compared to 23 minutes. Not literally like adults. So, you need to guide them.
He is only 3. Keep expectations age appropriate.
Its good he behaves in school. He knows his role there. At home, a kid will display their good AND bad points. Just like an adult. Adults- they don't "mis-behave" at work either... but at home, their yucky traits can come out. They are home.
Kids don't need treats for every little thing. It can get out of hand.
They don't need to get punished for every little thing either. That can get out of hand. Not everything is a "chart" for behavior. BUT... a child does need to be taught about how to problem-solve, how to cooperate, how to express themselves, how to think on their own... and how to be a PART of the Family.... to be a "team" about it.... about "helping" too. Try giving him simple things to do in the house... just 1 or 2 things. Wipe the table, put your plate in the sink. SHOW him how OTHER things all tie into... the family... and how EVERYONE gets ready, brushes their teeth, goes to school or work... and how it all takes team work. Praise him... for things. Not everything has to be a power-struggle-battle.
A 3 year old child, is not going to "know" that dessert for him is only allowed 1-day-a-week-after-dinner. That is an abstract time construct for a child. Especially that age. So of course he is going to haggle over it and want it. He doesn't know "WHEN" that one day a week dessert for him, is, exactly. Its like saying to a child "Christmas is in 23.5 days. So wait until then." A 12 year old might be able to wait, but not a 3 year old... and until those 23.5 days has arrived, a mere child is going to ask quite often if it is time yet.
All the best,
Susan