当前位置: 首页 > news >正文

使用vue3构建一套网站

创建一个vue-pc项目

npm create vite@latest vue-pc --template vue
选择  vue  ->  javaScript

在这里插入图片描述

// 依次执行命令
cd vue-pc
npm install
// 启动项目
npm run dev

在这里插入图片描述
快捷键 o + enter 在浏览器打开

在这里插入图片描述
Vite 创建完的 Vue 项目目录结构大致如下:

vue-pc/public/src/assets/components/App.vuemain.jsindex.htmlpackage.jsonvite.config.js

配置路由
安装 vue-router

npm install vue-router@4

然后在 src 下新建路由配置文件:

src/router/index.js
import { createRouter, createWebHistory } from 'vue-router'
import BuyPage from '../views/BuyPage.vue' // 👈 新建页面
import TestPage from '../views/TestPage.vue'; // 👈 引入测试页面const routes = [{path: '/',name: 'Buy',component: BuyPage},{path: '/test',  // 👈 新增测试页面路由name: 'Test',component: TestPage}
]const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes
})export default router

修改入口文件使用路由
src/main.js 中把 Vue Router 加进去:

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'import './style.css'const app = createApp(App)
app.use(router)
app.mount('#app')

创建显示页面
新建:src/views/BuyPage.vue

<template><div class="buy-page"><h1>购买数字货币</h1><div class="form-item"><label>选择币种:</label><select v-model="selectedCoin"><option v-for="coin in coins" :key="coin" :value="coin">{{ coin }}</option></select></div><div class="form-item"><label>购买数量:</label><input type="number" v-model="amount" min="0" placeholder="输入数量" /></div><button @click="buyCoin">立即购买</button><div v-if="result" class="result"><p>{{ result }}</p></div></div>
</template><script setup>
import { ref } from 'vue'const coins = ['USDT', 'BTC', 'ETH']
const selectedCoin = ref('USDT')
const amount = ref('')
const result = ref('')function buyCoin() {if (!amount.value || amount.value <= 0) {result.value = '请输入有效的数量'return}result.value = `成功购买 ${amount.value}${selectedCoin.value}`
}
</script><style scoped>
.buy-page {max-width: 500px;margin: 50px auto;padding: 30px;border: 1px solid #eee;border-radius: 10px;
}
.form-item {margin-bottom: 20px;
}
.result {margin-top: 20px;color: green;
}
</style>

新建:src/views/TestPage.vue

<template><div class="test-page"><h1>测试页面</h1><p>这里是专门用来写测试代码的页面。</p></div></template><script setup>// 你可以在这里测试你的代码</script><style scoped>.test-page {max-width: 600px;margin: 50px auto;padding: 30px;border: 1px dashed #aaa;border-radius: 10px;background: #fff;}</style>

修改 App.vue
确保 App.vue 中渲染路由出口:

<template><router-view />
</template><script setup>
// 空的 script-setup
</script><style>
/* 全局样式可在这里写 */
</style>

访问的后缀是在src/router/index.js配置的
访问页面即可看到效果,访问测试页面可以http://localhost:5173/test 根据路由会渲染views/TestPage.vue里面的代码。

后续可做

  • 使用 Pinia 做状态管理(Vuex 已不推荐)
  • 使用 Axios 接入后端 API
  • 引入 Element Plus、Naive UI 等组件库美化界面
  • 做身份认证(比如登录、支付密码)
  • 接入订单记录、支付状态等功能

后续可扩展后的src文件目录

src/api/           // 接口请求封装assets/        // 静态资源components/    // 可复用组件config/        // 配置文件i18n/          // 国际化layout/        // 公共布局plugins/       // 第三方插件封装router/        // 路由配置store/         // 状态管理(Pinia/Vuex)utils/         // 工具函数views/         // 页面级组件App.vuemain.js
http://www.lqws.cn/news/558469.html

相关文章:

  • TCP 和 UDP 是什么?
  • 【Python基础】06 实战:视频压缩迷你脚本设计
  • 深入理解C#委托操作:添加、移除与调用全解析
  • 港澳地区,海外服务器ping通可能是地区运营商问题
  • MySQL为什么要使用b+树
  • 1 Studying《Computer Architecture A Quantitative Approach》1-4
  • 鸿蒙HarmonyOS 5小游戏实践:数字记忆挑战(附:源代码)
  • 信号处理学习——文献精读与code复现之TFN——嵌入时频变换的可解释神经网络(下)
  • 给定一个整型矩阵map,求最大的矩形区域为1的数量
  • Insar 相位展开真实的数据集的生成与下载(随机矩阵放大,zernike 仿真包裹相位)
  • Launcher3中的CellLayout 和ShortcutAndWidgetContainer 的联系和各自职责
  • 剑指offer50_0到n-1中缺失的数字
  • python -日期与天数的转换
  • autoas/as 工程的RTE静态消息总线实现与端口数据交换机制详解
  • 解决flash-attn安装报错的问题
  • 【C】陷波滤波器
  • 鸿蒙开发:资讯项目实战之底部导航封装
  • MySQL之MVCC实现原理深度解析
  • 类和对象(中)
  • springboot+Vue驾校管理系统
  • 开疆智能ModbusTCP转CClinkIE网关连接台达DVP-ES3 PLC配置案例
  • Java-正则表达式
  • 测量 Linux 中进程上下文切换需要的时间
  • cocos creator 3.8 - 精品源码 - 挪车超人(挪车消消乐)
  • 同步日志系统深度解析【链式调用】【宏定义】【固定缓冲区】【线程局部存储】【RAII】
  • 蚂蚁百宝箱体验:如何快速创建“旅游小助手”AI智能体
  • LINUX628 NFS 多web;主从dns;ntp;samba
  • AlphaGenome:基因组学领域的人工智能革命
  • Linux离线搭建Redis (centos7)详细操作步骤
  • 深入解析 Electron 核心模块:构建跨平台桌面应用的关键