Giter VIP home page Giter VIP logo

fetch-weather's Introduction

Fetch the Weather

Let's use our new-found react skills to create a weather app!

You will need:

  • Fetch (built-in to JavaScript) or axios (3rd party, remember to npm install axios)
  • Create forms that store data with local state

Implement the Fetch API

Resources:

Time to show off! You're going to display the weather on your app.

You'll use the OpenWeather API to fetch weather information from a certain zip code and update your blog to display the current weather.

Solution

At the end of this exercise, your solution will look something like what's shown here.


Steps to Achieve

  • Fork and clone this repo
  • cd into the new folder and run npx create-react-app . to generate a new react app in the repo.
  • sign up for an API here
  • Make a new component called Weather. On your Weather page, ask the user to input a zip code.
    • you will need to use a 'controlled form' where your Weather component's state controls the value of the input
    • store what the user has typed in your Weather component's state.
    • you will need an onChange event handler, that updates state as the user types
    • you will need an onSubmit event handler, that is invoked when the user submits the form, don't forget to prevent the default behavior of the form submission!
    • You can learn more about forms here.
  • when the form is submitted, use the value in state and fetch() from the OpenWeather API. (note, you may npm i axios and use it instead of fetch, if you prefer)
    • read here how to ping the API and get results based on zipcode
  • Use the response from the API to display the current temperature, the high and low temperatures, the current weather description, and the name of the city.
    • Note: Our solution uses Fahrenheit. You're free to use Celsius or Kelvins if you'd like.

Need a Hint or Two?

Hint 1
You'll only need to create and implement the `Weather` component.
Hint 2
The `value` of your text fields need to be 'controlled' in your components state
Hint 3
The temperature reading comes in units of Kelvin by default - check the API for the `units` parameter to get the reading in Farenheit or Celcius

Bonus

Here are some extra ideas to challenge yourself if you have time:

  • Icons make every weather app come to life! There's a good way to do this - hunt around in the returned JSON for a recommended icon.
  • Spend a little time styling the page. Try to get it close to the example image above!
  • Make your current weather into a 5-day forecast
  • Make a Use current location button so the user can click that instead of providing the location.

fetch-weather's People

Contributors

h64 avatar weston-bailey avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.