研发效能DevOps: Vite 使用 Element Plus

目录

一、实验

1.环境

2.初始化前端项目

3.安装 vue-route

4.安装 pinia

5.安装 axios

6.安装 Element Plus

7.gitee创建工程

8. 配置路由映射

9.Vite 使用 Element Plus

二、问题

1.README.md 文档推送到gitee未自动换行

2.访问login页面显示空白

3.表单输入账户与密码,按钮依然为禁用状态


一、实验

1.环境

(1)主机

表1 主机

系统

软件版本备注
Windows11VS Code1.96.2
Node.jsv18.20.4(LTS)

运行(输入cmd)

bb3a3a38004c40f2bbe67919cce22e05.png

查看VS Code版本

Code --version

查看node版本

node -v

87de6fb85c2d465592c1d9bf92f6903d.png

查看npm版本

npm -v

e2bc65daa7634b05ab83d20f2e7f53ca.png

2.初始化前端项目

(1)安装vite

cnpm create vite@latest

输入y,然后选择vue

接下来选择JavaScript

(2)安装依赖

切换目录

cd vite-axios

这里切换cnpm安装依赖

cnpm install

(3) 运行

npm run dev

弹出界面:

可以访问到Vite + Vue

http://localhost:5173/

(4)退出

CTRL + C 结束

0f487b1ab5c24e3d91e69c4272ca89e8.png

输入Y

f23cf1681ec44fa68e7c1bdc1515faf3.png

3.安装 vue-route

(1) 查阅

https://router.vuejs.org/zh/installation.html

(2) 安装vue-router

使用cnpm安装

cnpm install vue-router@4

(3) main.js集成路由

导入router

import router from './router'

注册路由

const app = createApp(App)
app.use(router)
app.mount('#app')

修改前:

修改后:

(4)创建路由配置目录router

(5) router下创建index.js (实现组件与路由映射)

(6)修改index.js

导入创建路由的方法

import { createWebHistory, createRouter } from 'vue-router'

定义路由映射

const listRoutes = {

}

const routes = [
    listRoutes,
]

创建路由实例

const router = createRouter({
    history: createWebHistory(),
    routes,
})

导出默认路由

export default router 

 (7) 运行

npm run dev

弹出界面:

可以访问到Vite + Vue

http://localhost:5173/

(8)退出

CTRL + C 结束

0f487b1ab5c24e3d91e69c4272ca89e8.png

输入Y

f23cf1681ec44fa68e7c1bdc1515faf3.png

4.安装 pinia

(1) 查阅

https://pinia.vuejs.org/zh/getting-started.html

 (2) 安装pinia

使用cnpm安装

cnpm install pinia

(3) main.js集成pinia

导入创建pinia的方法

import { createPinia } from 'pinia'

注册pinia

const pinia = createPinia()
app.use(router).use(pinia)
app.mount('#app')

修改前:

修改后:

(5)创建全局状态(容器)目录store

(6)store下创建index.js

(7)修改index.js

导入定义Store

import { defineStore } from 'pinia'

state 是 store 的数据 (data),getters 是 store 的计算属性 (computed),而 actions 则是方法 (methods)

export const useStoreDemo = defineStore('storeDemo', {
    state: () => {
       return {
        msg: "This is Pinia"
        }   
    },
    getters: {},
    actions: {
       changeStoreDemo(value) {
        this.msg = value
        }
    }
})

5.安装 axios

(1) 查阅

https://www.axios-http.cn/docs/intro

(2)安装axios

使用cnpm安装

cnpm install axios

(3) 创建封装目录api

(4)api下创建index.js

(5)修改 index.js

import axios from 'axios'
const request = (url = '', data = {}, method = "get", timeout = 5000) => {
    return new Promise((resolve, reject)=>{
        const methodLower = method.toLowerCase() 
        if (methodLower === 'get') {
            axios({
                method: methodLower,
                params: data,
                timeout: timeout,
                url: url,
            }).then((response)=>{
                resolve(response)
            }).catch((error)=>{
                reject(error)
            })
        } else if (methodLower === "post") {
            axios({
                method: methodLower,
                data: data,
                timeout: timeout,
                url: url,
            }).then((response)=>{
                resolve(response)
            }).catch((error)=>{
                reject(error)
            })
        }
    })
}

export default request

6.安装 Element Plus

(1) 查阅

https://element-plus.org/zh-CN/guide/installation.html

(2)安装Element Plus

使用cnpm安装

(--save 参数 在装的时候会把包的信息写入package.json )

cnpm install element-plus --save

(3) 查看package.json 

(4)查阅

https://element-plus.org/zh-CN/guide/quickstart.html

(5)main.js集成Element Plus

……
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
……
app.use(router).use(pinia).use(ElementPlus)

修改前:

修改后:

  (6) 运行

npm run dev

弹出界面:

可以访问到Vite + Vue

http://localhost:5173/

F12 查看控制台 (目前暂未配置路由)

(7)退出

CTRL + C 结束

0f487b1ab5c24e3d91e69c4272ca89e8.png

输入Y

f23cf1681ec44fa68e7c1bdc1515faf3.png

7.gitee创建工程

(1)新建仓库

https://gitee.com/

(2)创建

(3)创建 git 仓库

git init

git add .

git add -A

git commit -m "项目初始化配置"

XXXXXXXX/vite-scaffold为创建的gitee仓库

git remote add origin git@gitee.com:XXXXXXXX/vite-scaffold.git

git push -u origin "master"

(4) gitee查看

(5)修改README.md

# scaffold项目初始化配置

cnpm create vite@latest
cnpm install
cnpm install vue-router@4
cnpm install pinia
cnpm install axios
cnpm install element-plus --save

(6)git查看状态

git status

(7) 提交并推送

git commit -am "修改文档"

git push -u origin "master"

(8)gitee查看

8. 配置路由映射

(1)创建页面组件目录view

(2)view下创建多个组件

Login.vue

然后把compoents下的HelloWorld.vue 内容,复制到Login.vue

(3)修改router下的index.js

通过懒加载形式把Login.vue导入

const Login = () => import('../view/Login.vue')

添加路由映射关系

……
const routes = [
    listRoutes,
    {
        path: "/login",
        component: Login,
    }
]
^

(4)路由输出到App.vue

修改App.vue

……
<router-view></router-view>
……

   (5) 运行

npm run dev

弹出界面:

可以访问到Vite + Vue

http://localhost:5173/login

(6)退出

CTRL + C 结束

0f487b1ab5c24e3d91e69c4272ca89e8.png

输入Y

f23cf1681ec44fa68e7c1bdc1515faf3.png

9.Vite 使用 Element Plus

(1)查阅

https://element-plus.org/zh-CN/component/card.html

(2)修改Login.vue

添加卡片

<template>
  <el-card class="box-card">
    <p v-for="o in 4" :key="o" class="text item">{{ 'List item ' + o }}</p>
  </el-card>
</template>

样式

<style scoped>
  .text {
    font-size: 14px;
  } 
  .item {
    padding: 18px 0;
  }
  .box-card {
    width: 480px;
  }
</style>

(3) 访问到Vite + Vue

http://localhost:5173/login

(4)git查看状态

git status

(5) 提交

git add -A

git commit -am "首页路由配置"

(6)添加标题元素

修改Login.vue

……
<h2>DevOps系统</h2>
……

(7) 访问到Vite + Vue

http://localhost:5173/login

(8)查阅表单

https://element-plus.org/zh-CN/component/card.html

(9)添加表单

修改Login.vue

<el-form
      :model="loginInfo"
      status-icon
      :rules="rules"
    >
      <el-form-item prop="username">
        <el-input v-model.number="loginInfo.username" />
      </el-form-item>
      <el-form-item prop="password">
        <el-input v-model="loginInfo.password" type="password" autocomplete="off" />
      </el-form-item>

      <el-form-item>
        <el-button type="primary" @click="submitForm(ruleFormRef)">
          登录
        </el-button>
      </el-form-item>
  </el-form>

(10)访问到Vite + Vue

http://localhost:5173/login

(11)查阅输入框与图标

输入框

https://element-plus.org/zh-CN/component/input.html

图标

https://element-plus.org/zh-CN/component/icon.html

(12)安装图标

cnpm install @element-plus/icons-vue --save

(13)找到username图标

https://element-plus.org/zh-CN/component/icon.html

点击图标

显示已复制

获取到图标信息:

<el-icon><User /></el-icon>

(14)找到password图标

 点击图标

显示已复制

获取到图标信息:

<el-icon><Lock /></el-icon>

(15) 添加图标,并将图标映射到输入框中

修改Login.vue

……
import { User,Lock } from '@element-plus/icons-vue';
……
:prefix-icon="User"
……
:prefix-icon="Lock"
……

 (16)访问到Vite + Vue

http://localhost:5173/login

 (17)git提交

git commit -am "输入框与按钮配置"

(18)查阅输入框设置固定宽度

https://element-plus.org/zh-CN/component/input.html

(19)添加clearable 图标

修改Login.vue

clearable

 (20)访问到Vite + Vue

http://localhost:5173/login

(21)查阅切换密码图标

(22)添加切换密码图标

修改Login.vue

show-password

 (23)访问到Vite + Vue

http://localhost:5173/login

(24)查阅输入框占位文本

(25)添加输入框占位文本

修改Login.vue

……
placeholder="请输入账户名"
……
placeholder="请输入密码"
……

 (26)访问到Vite + Vue

http://localhost:5173/login

(27)查阅表单校验

https://element-plus.org/zh-CN/component/form.html

(28)表单添加校验

修改Login.vue

import { reactive,ref } from 'vue';
……
const loginRef = ref()
const rules = reactive({
    username: [
      { required: true, message: '请输入账户名', trigger: 'blur' },
    ],
    password: [
      { required: true, message: '请输入密码', trigger: 'blur' },
    ],
})
……
ref="loginRef"
:rules="rules"
……

 (29)访问到Vite + Vue

http://localhost:5173/login

(30)查阅按钮禁用状态

https://element-plus.org/zh-CN/component/button.html

(31)登录按钮添加禁用状态

import { watch } from 'vue';
……
let loginButtonDisabled = ref(true)
watch([() => loginInfo.username,() => loginInfo.password],() =>{
  loginRef.value.validate((valid)=>{
      if(valid){
        loginButtonDisabled = false
      } else {
        loginButtonDisabled = true
      }
    }
  )
})
……
:disbaled="loginButtonDisabled"
……

(32)访问到Vite + Vue

http://localhost:5173/login

未输入账户或密码。登录按钮为禁用状态 (浅蓝色)

未输入密码。登录按钮为禁用状态 (浅蓝色)

输入账户与密码。登录按钮为启用状态 (深蓝色)

(33)git提交

git commit -am "输入框与按钮配置"

二、问题

1.README.md 文档推送到gitee未自动换行

(1)问题

README.md写好内容时,发现它缩到一起了,不是想要的格式

(2)原因

换行末尾,未打上空格。

(3)方法

   直接在要换行的语句最后打上2个空格

git push后,成功换行

2.访问login页面显示空白

(1)问题

访问login页面空白

(2)原因

渲染配置错误

(3) 方法

修改前

修改后:

成功:

3.表单输入账户与密码,按钮依然为禁用状态

(1)问题

表单输入账户与密码,按钮依然为禁用状态 (浅蓝色)

(2)原因分析

watch监听状态的值判断需要配置正确

(3)方法

修改watch监听里if判断

修改前:

修改后:

成功:

图标显示(深蓝色)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值