I've recently been building web applications with front-end frameworks like React, Reagent, and Angular 2. I was recently working on an Angualr 2 project and thought, "man, this sure seems like a ton of lines of code", but had no concrete evidence to prove it. After a quick google search I came to this stack overflow question, and the awesome answer(s) therein.
In my new role I've been given the opportunity to really dig into React, learn a lot about it, and build an application with it. I had previously used Ngrx in Angular 2 so it was interesting to go back to the original Redux library after having used the Angular step-cousin. After a few small roadblocks the application is progressing rather smoothly, and I have to say I think Redux is pretty dang awesome.
If you were using an older version of angular CLI before it had aot built into it then you may start to receive these errors when you run you usual `ng serve` or `ng build` commands:
ERROR in Error encountered resolving symbol values statically. Function calls are not supported. Consider replacing the function or lambda with a reference to an exported function (position 7:3 in the original .ts file), resolving symbol mainStoreReducer in /.../, resolving symbol AppModule in /../, resolving symbol AppModule in /../, resolving symbol AppModule in /../
I just had the awesome opportunity to TA and sit in on a 2-day Angular 2 course instructed by one of the top teachers in the web development world and the hungry mind behind One Hungry Mind Blog, Lukas Ruebbelke (@simpulton). It was especially humbling because his eggy bookmarks course was one of the very first times I really dug in and started writing Angular code. It felt like meeting a childhood hero or Santa Claus. I had spent so much time watching his videos that it was surreal to meet him in person, and yes he is really that goofy and funny in real life. haha. Anyway, even though I have been using Angular 2 for a little while now and the course was aimed more for beginners, I still took about 4 pages of notes and learned a ton while I was there. Plus, it was great to get a refresher/confirmation on some basic concepts and some new perspective on how to think about certain other things. In this post I've written a bullet point list of some after-the-fact thoughts while looking back at the notes I took during the lectures. Enjoy!
As you may have guessed from the title, this post is all about understanding what selectors are in an Ngrx Angular 2 application and why one should want to use them. I'll admit it; for a while I didn't use selectors at all. The truth is that you don't *need* them to get a basic project up and running with Ngrx (and that's why I don't talk about them in my Getting Set Up With With Ngrx blog post), but as your application grows along with your understanding of Ngrx you may eventually want to refactor your code and the way you select data from the state to improve your project's consistency and prevent unnecessary duplication. So without further ado, let's talk about selectors!
The posts on this site are written and maintained by Jim Lynch. About Jim...