Tim Carlson
I'm a lecturer at University of Washington
For the Final Draft of the project, we're looking for it to be totally complete! See the Canvas page for full details.
Final Projects will be graded in two parts:
A reminder that we have a policy around AI usage for projects https://canvas.uw.edu/courses/1830652/pages/gen-ai:
In particular, remember the practice:
# switch to starter branch to get new starter code
git checkout starter
# download new starter code
git pull
# switch back to main branch for coding
git checkout main
# merge in new starter code (use default msg)
git merge starter --no-edit
# code and enjoy!
Get the starter code from the starter branch, but do all of your work on main.
Firebase is a web backend solution; it provides multiple features which you can access without need to "code" them yourselves.
An effect hook is used to specify "side effects" of Component rendering -- code you want to execute only once and not on each render!
//import the hooks used
import React, { useState, useEffect } from 'react';
function MyComponent(props) {
const [stateData, setStateData] = useState([]);
//specify the effect hook function
useEffect(() => {
//code to do only once here!
//asynchronous methods (like fetch), etc
fetch(dataUri) //e.g., send AJAX request
//...
setStateData(data); //okay to call state setters here
}, []) //array is the second arg to the `useEffect()` function
//It lists which variables will "rerun" the hook if they
//change
//...
}
In order to "clean up" any work done in an effect hook (e.g., disconnect listeners), have the callback return a "cleanup function" to execute.
import React, { useState, useEffect } from 'react';
function MyComponent(props) {
//specify the effect hook function
useEffect(() => {
//...do persistent work, set up subscriptions, etc
//function to run when the Component is being removed
function cleanup() {
console.log("component being removed")
}
return cleanup; //return function for React to call later
}, [])
return ...
}
Complete task list for Week 10 (all items)
Review everything
Problem Set 09 due Wednesday!
Have a good break!
Next time: Firebase authentication and image storage
By Tim Carlson