From an SEO standpoint, 301 redirects are almost always better than 302 redirects.
However, one difference between 301 and 302 redirects is how browsers cache them. 301 redirects are cachable whereas 302 redirects are not. Using a 301 redirect introduces this buggy senario:
- User visits redirecting URL and gets sent to page A at its new location
- You launch a new page B at the old URL of page A.
- The user clicks on a link that should go to page B.
- The user gets redirected to page A because the 301 redirect is cached by the user's browser
This chain of events seems fairly unlikely if:
- The URL has been redirecting to the new home of page A for some time (weeks or months) before page B has launched (to give search engines the chance to index page A at its new location.)
- All internal links to page A point to the new URL of page A
- There are few external links into the old URL for page A and not many users click on them.