Assume you have a todo-list component that will render the passed todos for you. where the todos is an Ref object.
<todo-list :todos="todos"/>
And the todo-list component also allow user to delete any of the passed todos.
But vue3 won't let us to mutate the props.todos object.
So the only way to do this is make a clone of props.todos, then if user click on the delete button, remove the item from that cloned one to update the view. But this approach won't make change to the original passed todos Ref object.
Another way to workaround this is emit an itemDeleted event from the todo-list, listen it from it's parent component, then remove the deleted item from the original passed todos Ref object in the listener.
But I want to keep all the logic inside of the todo-list itself, so I want to know if there is any way to change the original todos Ref object inside the todo-list component.
I know a better solution could be using v-model:todo-list, and emit a update:todo-list event to update the original todo-list Ref object. But I'm wondering if I can do this without the v-model directive.