There really is no "Best Way", as it depends on your needs and the application. That being said my approach that I have found works really well is very similar to " Create one Script for Login, Action1,Action2 and Logout. After than create one Keyword Test and call all this 4 script Once you do that,create a project item with the keyword test. "
I use a library of script units for Actions, Connections, Data, Utilities, Verifications, etc...
These are all shared by add existing item in all projects, then we use either KWTs or other scripts to call these with desired parameters, adding the KWT or script as a project test item.