Vue3入门 - 登录功能开发(Vue3+ts+Pinia+Element Plus)

        Vue3中实现登录功能,通常涉及到创建一个表单,用户输入用户名和密码,然后将信息发送到后端进行验证,得到响应结果后作出相应操作。

一、创建项目

        这里他用pnpm进行项目的创建的,所以需要事先全局安装pnpm(在安装pnpm前,先确认本地电脑上是否已安装nodejs),命令如下:

npm install -g pnpm

1.1 创建vue

        使用pnpm创建vue项目命令如下:

pnpm create vue

        执行后作出相应选择,选择你项目中需要的选项即可。示例如下:

D:\workspace\vscode>pnpm create vue

Vue.js - The Progressive JavaScript Framework

√ 请输入项目名称: ... vue-project
√ 是否使用 TypeScript 语法? ... 否 / 是
√ 是否启用 JSX 支持? ... 否 / 是
√ 是否引入 Vue Router 进行单页面应用开发? ... 否 / 是
√ 是否引入 Pinia 用于状态管理? ... 否 / 是
√ 是否引入 Vitest 用于单元测试? ... 否 / 是
√ 是否要引入一款端到端(End to End)测试工具? » 不需要
√ 是否引入 ESLint 用于代码质量检测? ... 否 / 是
√ 是否引入 Prettier 用于代码格式化? ... 否 / 是
√ 是否引入 Vue DevTools 7 扩展用于调试? (试验阶段) ... 否 / 是

正在初始化项目 D:\workspace\vscode\vue-project...

项目初始化完成,可执行以下命令:

  cd vue-project
  pnpm install
  pnpm format
  pnpm dev

1.2 初始化项目

        当项目创建完成后,根据提示命令对项目进行初始化,先输入命令进入项目目录:

cd vue-project

        然后执行install命令,初始化项目:

D:\workspace\vscode\vue-project>pnpm install

   ╭──────────────────────────────────────────────────────────────────╮
   │                                                                  │
   │                Update available! 9.7.0 → 9.10.0.                 │
   │   Changelog: https://github.com/pnpm/pnpm/releases/tag/v9.10.0   │
   │                Run "pnpm add -g pnpm" to update.                 │
   │                                                                  │
   │         Follow @pnpmjs for updates: https://x.com/pnpmjs         │
   │                                                                  │
   ╰──────────────────────────────────────────────────────────────────╯

 WARN  5 deprecated subdependencies found: @humanwhocodes/config-array@0.11.14, 
@humanwhocodes/object-schema@2.0.3, glob@7.2.3, inflight@1.0.6, rimraf@3.0.2
Packages: +425
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++
Progress: resolved 463, reused 272, downloaded 153, added 425, done
node_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild: Running postinstall script...
node_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild: Running postinstall script, 
done in 341msstinstall script, done
in 209ms

dependencies:
+ pinia 2.2.2
+ vue 3.5.3
+ vue-router 4.4.3

devDependencies:
+ @rushstack/eslint-patch 1.10.4
+ @tsconfig/node20 20.1.4
+ @types/jsdom 21.1.7
+ @types/node 20.16.5 (22.5.4 is available)
+ @vitejs/plugin-vue 5.1.3
+ @vitejs/plugin-vue-jsx 4.0.1
+ @vue/eslint-config-prettier 9.0.0
+ @vue/eslint-config-typescript 13.0.0
+ @vue/test-utils 2.4.6
+ @vue/tsconfig 0.5.1
+ eslint 8.57.0 (9.10.0 is available)
+ eslint-plugin-vue 9.28.0
+ jsdom 24.1.3 (25.0.0 is available)
+ npm-run-all2 6.2.2
+ prettier 3.3.3
+ typescript 5.4.5 (5.6.2 is available)
+ vite 5.4.3
+ vite-plugin-vue-devtools 7.4.4
+ vitest 1.6.0 (2.0.5 is available)
+ vue-tsc 2.1.6

Done in 9.8s

        初始化项目后,则可以运行项目了,当执行pnpm dev后您会发现,瞬间项目就运行起来了,比vue2+webpack时快了很多。

D:\workspace\vscode\vue-project>pnpm dev

> vue-project@0.0.0 dev D:\workspace\vscode\vue-project
> vite


  VITE v5.4.3  ready in 1285 ms

  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose
  ➜  Vue DevTools: Open http://localhost:5173/__devtools__/ as a separate window
  ➜  Vue DevTools: Press Alt(⌥)+Shift(⇧)+D in App to toggle the Vue DevTools

  ➜  press h + enter to show help

二、Pinia

        在创建项目时,我们就已经选择安装了Pinia,这里就不重复安装了。

        pinia是Vue的存储库,它允许您跨组件/页面共享状态。它Vuex的替代品,其功能和性能更优于vuex,在后期使用中会逐渐被大家发现。

        这里我们先使用pinia全局存储用户信息、接口访问令牌、菜单列表等数据,当然这些只是作为一个项目的基础部分,其他共享信息可根据你们的项目需求进行添加。

        关于这部分,就不细讲了,之前一篇已详细讲解过,地址:

<think>好的,用户想了解如何在Vue3中集成和使用Element-Plus。首先,我需要回忆一下Element-Plus的相关文档。Element-PlusElement-UI的Vue3版本,所以安装和配置方法应该有所不同。 首先,用户需要创建一个Vue3项目。可能使用Vite或Vue CLI。现在Vite更流行,所以应该推荐使用Vite。然后,安装Element-Plus包,使用npm或yarn。安装完后,需要引入Element-Plus的样式和组件。有两种方式:全局完整引入和按需自动导入。全局引入简单但可能增加打包体积,按需导入更高效但需要配置自动导入插件,比如unplugin-vue-components。 接下来,需要解释具体步骤。比如,创建项目后,安装Element-Plus,然后在main.js中引入,并注册组件。如果是按需导入,需要安装unplugin-vue-components,并配置vite.config.js。然后,给出一个表单组件的示例代码,展示如何使用ElInput和ElButton组件。 此外,可能需要提到国际化设置,比如更改为中文,以及主题定制的部分,修改SCSS变量。常见问题方面,样式不生效可能是因为没有正确引入,或者按需导入的插件配置问题。最后生成相关问题,比如按需导入配置、主题定制、常见错误处理等。 需要确保所有代码示例正确,语法无误。比如,在模板中使用组件时,Element-Plus的组件名是否正确,比如el-input对应ElInput。同时,提醒用户注意版本兼容性,确保Element-PlusVue3版本匹配。检查引用部分是否需要添加,但根据用户给的示例,可能不需要具体的文献引用,但如果有参考文档,可以标注。 可能用户是刚接触Vue3Element-Plus开发者,所以步骤要详细,代码示例清晰。同时,提供不同配置方式的选择,让用户根据自己的项目需求决定使用全局还是按需导入。最后,相关问题要覆盖常见的使用场景和问题,帮助用户进一步学习。</think># Vue3Element-Plus集成与使用指南 ## 一、环境准备 1. 使用Vite创建Vue3项目: ```bash npm create vite@latest my-vue-app --template vue ``` 2. 安装Element-Plus核心库: ```bash npm install element-plus ``` ## 二、完整引入方式(适合快速原型开发) 在`main.js`中配置: ```javascript import { createApp } from &#39;vue&#39; import ElementPlus from &#39;element-plus&#39; import &#39;element-plus/dist/index.css&#39; import App from &#39;./App.vue&#39; const app = createApp(App) app.use(ElementPlus) app.mount(&#39;#app&#39;) ``` ## 三、按需自动导入(推荐生产环境使用) 1. 安装自动导入插件: ```bash npm install -D unplugin-vue-components unplugin-auto-import ``` 2. 修改`vite.config.js`: ```javascript import AutoImport from &#39;unplugin-auto-import/vite&#39; import Components from &#39;unplugin-vue-components/vite&#39; import { ElementPlusResolver } from &#39;unplugin-vue-components/resolvers&#39; export default defineConfig({ plugins: [ // ... AutoImport({ resolvers: [ElementPlusResolver()], }), Components({ resolvers: [ElementPlusResolver()], }), ], }) ``` ## 四、基础组件使用示例 ```vue <template> <div class="demo"> <el-input v-model="inputValue" placeholder="请输入内容" /> <el-button type="primary" @click="handleSubmit">提交</el-button> <el-alert v-if="showAlert" title="操作成功" type="success" /> </div> </template> <script setup> import { ref } from &#39;vue&#39; const inputValue = ref(&#39;&#39;) const showAlert = ref(false) const handleSubmit = () => { showAlert.value = true setTimeout(() => showAlert.value = false, 2000) } </script> ``` ## 五、进阶配置 1. **国际化配置**: ```javascript import zhCn from &#39;element-plus/dist/locale/zh-cn.mjs&#39; app.use(ElementPlus, { locale: zhCn, }) ``` 2. **主题定制**: 创建`styles/element/index.scss`: ```scss @forward "element-plus/theme-chalk/src/common/var.scss" with ( $colors: ( &#39;primary&#39;: ( &#39;base&#39;: #409EFF, ) ) ); ``` 在`vite.config.js`中配置: ```javascript export default defineConfig({ css: { preprocessorOptions: { scss: { additionalData: `@use "~/styles/element/index.scss" as *;`, } } } }) ``` ## 六、常见问题解决 1. **样式未生效**: - 确保已安装`element-plus@^2.3.4`版本 - 检查自动导入插件配置是否正确 - 确认组件名称前缀是否匹配(默认`el-`) 2. **TypeScript支持**: 安装类型声明文件: ```bash npm install @element-plus/types ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

觉醒法师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值