summaryrefslogtreecommitdiff
path: root/react/02-vite/src/App.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'react/02-vite/src/App.jsx')
-rw-r--r--react/02-vite/src/App.jsx122
1 files changed, 122 insertions, 0 deletions
diff --git a/react/02-vite/src/App.jsx b/react/02-vite/src/App.jsx
new file mode 100644
index 0000000..4f03aa1
--- /dev/null
+++ b/react/02-vite/src/App.jsx
@@ -0,0 +1,122 @@
+import { useState } from 'react'
+import reactLogo from './assets/react.svg'
+import viteLogo from './assets/vite.svg'
+import heroImg from './assets/hero.png'
+import './App.css'
+
+function App() {
+ const [count, setCount] = useState(0)
+
+ return (
+ <>
+ <section id="center">
+ <div className="hero">
+ <img src={heroImg} className="base" width="170" height="179" alt="" />
+ <img src={reactLogo} className="framework" alt="React logo" />
+ <img src={viteLogo} className="vite" alt="Vite logo" />
+ </div>
+ <div>
+ <h1>Get started</h1>
+ <p>
+ Edit <code>src/App.jsx</code> and save to test <code>HMR</code>
+ </p>
+ </div>
+ <button
+ type="button"
+ className="counter"
+ onClick={() => setCount((count) => count + 1)}
+ >
+ Count is {count}
+ </button>
+ </section>
+
+ <div className="ticks"></div>
+
+ <section id="next-steps">
+ <div id="docs">
+ <svg className="icon" role="presentation" aria-hidden="true">
+ <use href="/icons.svg#documentation-icon"></use>
+ </svg>
+ <h2>Documentation</h2>
+ <p>Your questions, answered</p>
+ <ul>
+ <li>
+ <a href="https://vite.dev/" target="_blank">
+ <img className="logo" src={viteLogo} alt="" />
+ Explore Vite
+ </a>
+ </li>
+ <li>
+ <a href="https://react.dev/" target="_blank">
+ <img className="button-icon" src={reactLogo} alt="" />
+ Learn more
+ </a>
+ </li>
+ </ul>
+ </div>
+ <div id="social">
+ <svg className="icon" role="presentation" aria-hidden="true">
+ <use href="/icons.svg#social-icon"></use>
+ </svg>
+ <h2>Connect with us</h2>
+ <p>Join the Vite community</p>
+ <ul>
+ <li>
+ <a href="https://github.com/vitejs/vite" target="_blank">
+ <svg
+ className="button-icon"
+ role="presentation"
+ aria-hidden="true"
+ >
+ <use href="/icons.svg#github-icon"></use>
+ </svg>
+ GitHub
+ </a>
+ </li>
+ <li>
+ <a href="https://chat.vite.dev/" target="_blank">
+ <svg
+ className="button-icon"
+ role="presentation"
+ aria-hidden="true"
+ >
+ <use href="/icons.svg#discord-icon"></use>
+ </svg>
+ Discord
+ </a>
+ </li>
+ <li>
+ <a href="https://x.com/vite_js" target="_blank">
+ <svg
+ className="button-icon"
+ role="presentation"
+ aria-hidden="true"
+ >
+ <use href="/icons.svg#x-icon"></use>
+ </svg>
+ X.com
+ </a>
+ </li>
+ <li>
+ <a href="https://bsky.app/profile/vite.dev" target="_blank">
+ <svg
+ className="button-icon"
+ role="presentation"
+ aria-hidden="true"
+ >
+ <use href="/icons.svg#bluesky-icon"></use>
+ </svg>
+ Bluesky
+ </a>
+ </li>
+ </ul>
+ </div>
+ </section>
+
+ <div className="ticks"></div>
+ <section id="spacer"></section>
+ </>
+ )
+}
+
+export default App