In short, yes, but make sure you also memoize (e.g., via useCallback) your onSave and onClose handlers where you create them, if you create them in render cycle (as you do with handleSaveView). Don’t forget to pass selectedViewList as dependency, too.
Why use React memoization hooks
There are two reasons to React memoization hooks (of which useCallback is one) for: A) reference equality, and B) computation caching. Your example is about reference equality, so we’ll talk only about that.
Why memoize for reference equality
To avoid extra re-renders (i.e., rendering a component again even if nothing changed).
React will want to render whenever a prop changes, and strict equality operator is used when checking whether a prop changed. With JavaScript’s strict equality operator, a non-primitive value is different every time you instantiate it, even if you instantiate it the exact same way.
This includes traditional objects, functions, arrays:
{ foo: 'bar' } !== { foo: 'bar' }
function a() { return true } !== function a() { return true }
[1, 2, 3] !== [1, 2, 3]
Therefore, if you 1) create a non-primitive value { foo: 'bar' } within render cycle (i.e., in the body of a React function component) and 2) pass this value as prop to another component, then you need a way of telling React that { foo: 'bar' } is the same as { foo: 'bar' } if you want to avoid unnecessary renders of that component.
How hooks ensure reference equality
React’s hooks allow you to declare that “this non-primitive value is the same if all of those other values (dependencies) are the same”. But again, React uses strict equality to check whether dependencies are the same.
Memoizing is useless if you don’t ensure reference equality of dependencies
Everything is fine if your dependencies are primitive values (numbers, strings, null, and so on).
However, in case of this question, I assume onSave and onClose are functions. Non-primitive values. Which means, if you declare them in some component’s render cycle, they are re-created every render. Therefore, unless you also memoize them, your memoization will be completely pointless, your handleSaveView will be new every time, and if you pass it to another component it may be re-rendered even if you don’t expect it.