React Shopping Cart Tutorial | Context API with useReducer Hook in React JS
ฝัง
- เผยแพร่เมื่อ 22 ก.ค. 2024
- #reactshoppingcart #useContext#ReactJSProject #useReducer
Build a Shopping Cart Project in React JS in one video. We will use Context API with useReducer Hook for State Management. Learn Hooks like createContext and useContext. We will learn add to cart functionality along with sorting and filtering products by search also.
Source Code -
github.com/piyush-eon/React-s...
Live Site -
shopping-cart-with-reactjs.ne...
If any questions, ask here -
/ roadsidecoder
Context API Tutorial -
• React Context API with...
React Router Tutorial -
• React Router Dom [ Ful...
00:00:00 Intro
00:00:24 Project Overview
00:02:53 Initialize new React App
00:03:23 Setup React Bootstrap
00:05:29 Header Component
00:12:05 Creating Page Routes
00:14:43 Setup Context API
00:17:10 Generating Products JSON
00:20:09 useReducer Hook
00:23:43 useContext Hook
00:24:19 Home Page UI
00:28:13 Filter Component UI
00:30:55 Rating Component UI
00:35:27 SingleProduct Component UI
00:40:04 Add / Remove from Cart Functionality
00:45:20 Header Cart Dropdown
00:50:21 Cart Page
01:00:00 Change Cart Quantity Functionality
01:01:53 Filters Implementation
01:02:18 Filters useReducer
01:12:22 Transform Products Logic
01:16:44 Mobile Responsive Styles
01:17:56 Outro
Movie App in React JS and Material UI -
• Movies and TV Series S...
Quiz App in React JS and Material UI -
• Quiz App in React JS w...
Dictionary App in React JS and Material UI -
• 12 Language Dictionary...
Learn React From Scratch -
• React JS Workshop Day ...
My Complete Frontend Interview Prep Course - roadsidecoder.com/course-details (50% Discount for limited time)
Whoever is watching this video, let me tell you one thing. You'll be asked to make such project in your frontend interview. Make the most use of this video. Thank you for putting such an amazing content on TH-cam bhai 😍❤️
Yes, It'll be very helpful in machine coding round.
Thank you for your comment to let others know the importance of this video bro
Yes, i got an assignment which was exactly similar to this 3 days ago, but sadly i coudln't implement the filter functionality......anyways now i have learnt about state management through this video
I agree
thanks buddy, I was just wondering about this.
Great tutorial!!If anyone is getting a blue background in Navbar dropdown badge,set {10}..the background color gets removed.
Thank you for uploading it, Piyush. It's really helpful for us to understand the concept. I can see the hard work and effort you put into it. Once again thank you.
This project is just awesome! I learned a lot from this video. Thanks a ton❤
Please keep making such tutorials these are really great 👏
Thank you, I will
such a great session I learn so many things from this video...thanks and make more videos like this..
for route we can use
Yes this is v6
You could've told for FAKERJS alternative faker doesn't work anymore or is it
@@sumittimori834 they bro...im getting error The above error occurred in the component any help
@@sumittimori834 did you find any alternative?
@@AmitGhosh-lj3oc You can use @faker-js/faker instead:
--> install it with:
npm install @faker-js/faker
--> then import it in Context.js:
import { faker } from '@faker-js/faker';
--> and then use it in Context.js:
const products = [...Array(20)].map(() => ({
id: faker.string.uuid(),
name: faker.commerce.productName(),
price: faker.commerce.price(),
image: faker.image.url(),
inStock: faker.helpers.arrayElement([0, 3, 5, 6, 7]),
fastDelivery: faker.datatype.boolean(),
ratings: faker.helpers.arrayElement([1, 2, 3, 4, 5]),
}));
Have been seen some of your videos and you are really a great teacher. Please keep doing some more content for us :)
This is actually a very clean way to write a shopping cart. Thanks for the video man!
Bro can you forward the link of your shopping cart code bro
Very amazing project with indepth explanation. Learned many of new things related to reducer. Thanks a lot bhai.
I am so greatful for the "!important" trick. This is the first time I'm seeing this. So useful!!! Thank you so much!
Glad it was helpful!
That's really great!! keep going!!!🤩
Thank you brother, I became an instant fan of your work/channel.
🙏🙏
Thank you so much for making such a wonderful project.
For anyone else curious about the Array(prod.inStock).keys(); evidently keys() is also an array method! I thought it was just an object method. What he is doing here is creating an array the length of the number of products in stock. For example, if there was 5 products in stock, there would be an array with 5 elements (all undefined initially). Then, the keys method converts an array to an iterable object with the array keys(indexes). This is then spread into an array and mapped over, essentially making each array element an index.
I think a simpler and more understandable solution would simply be to use the index parameter from the map function, the result seems to be the same.
hey
@@usamaarifshah7499 Thanks for the explanation!
I can't express how much I am grateful to you, you really saved my life! Thank you very much, you are the best instructor I've learnt with him!
You're welcome ❤️
It's a great video! Thanks a lot!
Very underated Video . This is what I wanted... Thanks ..💯
Thanks for such a great video on context api
you are awesome mentor, well done mate!
Incredible I love your tutorials, you are on of the best Tech youtubers I like most
Thanks a lot 🙏
Thanks a lot, such an great video with nice explanation. 👍
I am learning a lot from this channel man .I dont understand why this channel is so underrated
You can change that by sharing it to more people 😁🙏
@@RoadsideCoder I am doing that for sure
your projects are super helpful brother..⭐❤
Best resource for React 🔥🙌
Thank you for this wonderful tutorial.
Welcome mate
Waited for this a long time
Haha yeah
thank you for this amazing project🙂
Thank you very much professor for this amazing project, this opens and expands my knowledge to know more about Reducer, provider state, etc.
Glad to hear that !
Great job, thanks for sharing
Hey, firstly, thanks a lot for your tutorials and interviews. I genuinely feel like I've learnt a lot through them Having said that, if you don't mind a bit of feedback, your naming conventions and general consistency needs some attention. I feel it's all over the place. I know during the interview demos you tend to code faster but in these expositions when you have the luxury of time, i think it's worth paying attention to since you have a lot of viewers. Just my opinion. Regardless of that, I highly appreciate the effort you put in to your content. Thanks once again!
Hey, Thanks a lot for your feedback. And I have improved this in my recent videos after realising this. ❤️
the best video by contextApi
You are Just Amazing ....We need More Tutorial Like This....Please Upload More Beginner Projects
Thank you, I will
Thank you for your kind explanation! btw I wonder if there is a way to lose focus on the green cart button at "50:15" when moving to the cart page. I tried document.activeElement.blur() but it doesn't work. Probably it's hard to control the bootstrap component?
I learned a lot from you
Great content
Thanks man. ❤️
Thank you Bhaiya for this tutorial. Really great video 🔥🙏👌❤️👍👍
🙏🙏
very useful video. Thankyou so much for this.
Thanks! I have created an indepth course covering all such topics - roadsidecoder.com/course-details
Really great video. I am looking something like that. Thank you very much..
Glad u liked it 🙏
Thank you man!
hello sir great tutorial perfect combination of useReducer and contextAPI. it's working same as like as redux.
hiii bro i am facing problem in running this project can u help
Great man
great tutorial ⭐⭐⭐⭐⭐ thanks
You are amazing man keep it up
Yo thanks mate!
This is a great tutorial. I used this in my project and I want to point out two things.
1. the store/global state will be gone once the page refreshes. Use localstorage to store that.
2. The reducer function used in this video are not pure functions, as you are assigning values on reducers, which is not a good practice.
Hi brother , can u tell me how did u store ur data into localstorage and fetch it again , cuz for me im only get [object,object] ??
@@oussamaaitboulahna4849 share your code brother
@@oussamaaitboulahna4849 Convert your data into string , then store in local storage.
@@shariqansari4056 Oh Thanks Man
This comment needs to be on top
Amazing
Great content , thanks for sharing
Glad you liked it 🙏
Great Tutorial. i would like the react + typescript + combine reducers tutorial plz.
you deserve more subscribers and likes 💖
Thanks man. You can support me by sharing this to people who need it.
amazing content brother.
You deserve more subs,
One request: if possible please use a loud microphone.
Thanks brother, I'll improve the audio quality 🤘
Thank you❤️
Good Project
thank you
thanks bro, though manything outdate and alot update after time, but it still a good tutorial to start and easy to understand
Bhai kya khate ho 🤔 itna energy rahta hai 😄
Bhokal video h 🔥🔥
Thank you Sir
Please bring more such contents
Thanks dear oracle : )
In interviews is it okay to use plain css modules instead of bootstrap?
very good
superrrr bro
Thanks man
Great tutorial! It helps me a lot while adding some feature in my E-commerce project but I'm using my own database and I have not added the "inStock" in my database so can you please tell me how can I add that and use in the qty increment feature of cart cards.
You got a answer
bro thanks a lot
utub recommending this piece of work
Awesome 🔥
Hi..
In creating page router, I have written same code as yours but their is error in my output... Please help me out
From VietNam thanks you so much
Welcome 🤟
"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a "
what to do if i get this error?? because if i wrap with it says [home] is not a react component or react.fragment
Great
can someone explain the `onClick` props in rating component for me please? why they're so different in `filter` and `rating` components? thanks!
how is ur dropdown menu position like this (end of dropdown menu container is aligned with the end of dropdown button)
Thanks so much for this awesome course. I am making an excellent use of it. Only one minore issue. Children props is flagged with the error message "Children is missing in props validation". I am using react app created through latest vite. Any hint on what to add to the app so that error disappears? I should mention that the context provider function in jsx nor js.
بتتكلم اسرع من حياتي م براحه ي غالي
Amazing video bro ❤️🙌
Thanks man❤️
I am getting module not found error which says can't resolve faker in my project
bro alignRight from drop down is not working .please help me
sir i want to know If a customer clicks on order btn to order and the order list should received at the admins page/panel without any database or backend possible?? if yes how sir?
Hey bro i am trying run your Project i am getting error
Cannot read properties of undefined (reading 'seed')
Great tutorial. So much helpful. I have a question though. How to initialize state with products from API call? Because you're loading dummy products which are synchronised call. How about an async call using API? I tried but the initial state in useReducer initialized first before the products from API get loaded. What do you think?
You can do it the same way, that dummy data is also the result of an api call from faker
great
Only when components need lot of different state than , its recommended to use state hook else switch on reducer or redux
Can i use api endpoint to get fake data will it work the same?
Hi bro thank you so much. You helped me a lot by sharing this content ❤. Can I know one thing, is this responsive, I mean is this compatible for smaller devices like mobile applications?
So what will happen if you add some items and then hard refresh the page? Does the cart items updated to its initial state? If yes, how would you fix it?
hey how do you import components by just clicking at underlined red text in your code? is it some extension?
same, i didnt also see where he imported bootstrap
This is too awesome, I've learned a ton by this video. Thank you very much!
Just a little question: `alignRight` in is not working in my end. Has anyone caught the same thing?
yes it says something about the dom i didnt quite get it
@@kelongFX I use CSS to align the dropdown menu, that I set position: relative for container and position: absolute for dropdown-menu
Remove 'alignRight'
and add
Worked for me.
You can add inline styling to the tag like so: style={{ alignRight: true }}
align={'end'}
Hi try to make the same getting error when trying to add or remove to cart button
Is it possible to specify versions of all nmp's you are using, and react version as well.
Every time I'm installing something it is not working the propper way. I follow the code line by line and check each character but the result is different.
I actually stoped wne you installed "faker", since it is not working at all, it just says module is not found
Try in react 17
Good video with clear Explanation.
I tried implementing this project, But I didn’t get the output. I got an error saying that:
Module not found ‘Faker’ can’t resolve in src/context/context.js.
Even I install the package by npm install faker, the error is not re-solving.
Can any one help me in resolving the error
Thanks in Advance.
How I will create increment and decrement button . Alternative of select and option. Can you tell me. I created but not working properly
(6:61388) autoprefixer: Replace color-adjust to print-color-adjust. The color-adjust shorthand is currently deprecated.
How to Fix this ??
whenever I add items to cart in Context it works fine , but when I go to Cart page the cart Context gets reset and it becomes empty.What should I do ? I thik its happening due to when I route to cart page the page gets refreshed.
Very Nice explanation with real project. thank you. Can you create/share video with Backend API calling like realword application?
I already have a mern stack tutorial series. You can check it out!
thank you bhaiya so much this hepls a ton, i was stuck in my cart app but this helped me get a new perspective
thank you so much
can you also make full working ecommerce website video plzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Yeah sure bro!
why it is throwing error in single product component ,Cannot read properties of undefined (reading 'some')
This is really helpful video i m trying to create a same project but i m getting problem to access faker
how can be used local storage to persist state in cart
what to do if we need to fetch data from api using axios coz faker is no more
so, I am getting error on image: faker.random.image( ), it says this is not a function. Does anyone has a solution of this problem.
Please make more react projects....thanks a lot
btw are you in akshay saini discord voice chat on first day😁
Yes i was
40:29 Can you please explain how this destructing work while using spread operator, understand, but fill like something missing
You can try to google. Will find awesome resources