I'm experienced with React and was just trying out a small Svelte to-do list to get my feet wet with Svelte and see if it's something I'd like to suggest we try out at work.
However, there's one thing I wanted to clarify that wasn't immediately obvious from the documentation (and to just kickstart some discussion since this community is a little quiet).
In React, if I have a large file doing a good amount of logic, like in the to-list example where I have add logic, remove logic, and toggle logic, all of which can be complex in their own ways if you improve them enough, I am able to extract the logic out into it's own file by creating a custom hook. Like so
const useTodoList = () => {
const [list, setList] = useState([]);
const addItem = (taskName) => {
// task creation logic
setList(l => [...l, newTask]);
}
// logic for removeItem and toggleItem
return { list, addItem, removeItem, toggleItem };
}
Then, I can bring that into my component file by simply doing const { ... } = useTodoList();
and everything should just work. What would the equivalent be in Svelte? It sounds like I would want to leverage the store
concept, but that feels odd to me. I go from having pretty simple logic to having to add additional libraries to my logic. It's a lot of overhead for what should really be a pretty straightforward refactor in React.
Any insight you guys can give would be great! Additionally, I'd love to be able to move the style
as well, but so far haven't found anything that would be suitable for that quite yet. Svelte seems pretty set on having one large file whenever possible.
From the perspective of someone who uses Visual Studio Code, but also knows how to exit
vim
, there are a couple reasons that most developers who prefer one of the three, at least those I've spoken to.vim
keybindings" specifically for this reason. You'll find that it's a very popular method of working.Really it comes down to personal preferences and what you "grew up" using. It's really hard to transition into something like
vim
and it takes a concerted effort to switch by most users. You have to want to switch, otherwise you'll find it too difficult a learning curve or find yourself wandering back to more "featured" applications.There are likely more reasons out there, but these are, in my experience, the primary reasons.