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

新乡网站建设加盟电话重庆有哪些建设公司

新乡网站建设加盟电话,重庆有哪些建设公司,四合一做网站,有关毕业设计的网站前端 1.下载pnpm管理器 pnpm是一种JavaScript包管理器。 前提:确保安装了Node.js 和 npm 打开cmd,以管理员身份运行(输入以下指令) npm install -g pnpm 安装成功后显示: npm: 这是 Node.js 的包管理工具&#xf…

前端

1.下载pnpm管理器

pnpm是一种JavaScript包管理器。

前提:确保安装了Node.js npm

   打开cmd,以管理员身份运行(输入以下指令)

npm install -g pnpm

安装成功后显示:

  • npm: 这是 Node.js 的包管理工具,用于安装、发布、管理 Node.js 包。

2.使用pnpm创建项目

继续在cmd里面输入指令下载vue3项目

pnpm create vue

输入指令后下面是项目配置

出现以上绿色字母说明项目创建成功。

字符串名词解释:

在cmd上输入指令pnpm dev,会得到一个网站地址,点击进入

如果呈现下面的界面说明项目建立成功。

3.项目精细化配置

a.删除不要的组件

将标号文件夹里面的文件全部清空,留下空文件夹。

b.打开App.vue文件进行修改,以下是修改后的模样。

c.打开终端

Vscode里面的右上角有打开终端的快捷键。第三个

下载安装好Git Bash

在终端里面打开Git Bash

4.husky:Git钩子(Git Hooks)管理器

Git Hooks允许开发者在Git操作的特定阶段(如提交commit、推送push等)运行自定义脚本,而Husky则提供了一个便捷的接口来配置和管理这些钩子。

在cmd管理员身份运行地输入以下指令进行安装

pnpm dlx husky-init && pnpm install

打开Git Bash后逐渐输入三个指令

1.git init
2.git add .
3.git commit -m '描述性信息'
(描述性信息改为自己想改的内容,如:项目初始化)

进行配置:

配置 `package.json`

将已存在的文件 `package.json`中修改为一下形式

{// ... 省略 ..."lint-staged": {"*.{js,ts,vue}": ["eslint --fix"]}
}{"scripts": {// ... 省略 ..."lint-staged": "lint-staged"}
}

5.安装sass依赖(Git Bash界面上)

pnpm add sass -D

6.Pinia - 构建用户仓库和持久化

pnpm add pinia-plugin-persistedstate -D

修改main.js文件,修改为:


import { createApp } from 'vue'
import { createPinia } from 'pinia'
import persist from 'pinia-plugin-persistedstate'
import App from './App.vue'
import router from './router'const app = createApp(App)app.use(createPinia().use(persist))
app.use(router)
app.mount('#app')​

使用:在stores文件夹下面建一个小文件user.js

文件中添加内容:

// 从pinia库中导入defineStore函数,用于定义一个新的store
import { defineStore } from 'pinia';
// 从vue库中导入ref函数,用于创建一个响应式引用
import { ref } from 'vue';// 定义一个名为useUserStore的store,用于管理用户相关的状态
export const useUserStore = defineStore(// store的唯一标识符,通常用于调试和持久化'user',// 一个函数,返回一个包含state和actions的对象() => {// 使用ref创建一个响应式的token变量,初始值为空字符串const token = ref(''); // 定义一个设置token的函数,该函数接收一个参数t,并将其赋值给token.value// 这样做可以确保token是一个响应式引用,并且当它的值改变时,任何依赖于它的Vue组件都会重新渲染const setToken = (t) => (token.value = t); // 返回包含token和setToken的对象,这样它们就可以在store的外部被访问和使用了return { token, setToken };},// store的配置对象,这里启用了持久化功能{// 设置persist为true以启用持久化,这意味着store的状态将在页面刷新或重新加载时被保存和恢复// 注意:这里只是简单地启用了持久化,但没有指定具体的持久化策略(如存储位置、密钥等)persist: true // -->持久化}// 注意:上面的代码示例中,直接使用{ persist: true }可能不会按预期工作,// 因为Pinia本身并不直接支持持久化配置。持久化通常是通过插件(如pinia-plugin-persistedstate)来实现的。// 因此,需要先安装该插件,并在Pinia配置中正确地使用它。
);

7.axios-数据交互

Axios是一个基于Promise的网络请求库

pnpm add axios

8.element-ui组件配置

pnpm install element-plus
pnpm add element-plus
pnpm add -D unplugin-vue-components unplugin-auto-import

导入进main.js

import { createApp } from 'vue'
import { createPinia } from 'pinia'
import persist from 'pinia-plugin-persistedstate'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'
import router from './router'const app = createApp(App)app.use(createPinia().use(persist))
app.use(router)
app.use(ElementPlus)
app.mount('#app')

后端IDEA

建立SpringBoot框架

在idea里面新建一个项目,生成器选择SpringBoot,类型为Maven。

下一步选择依赖项:

三层架构

1.表示层(Presentation Layer)

表示层是用户与应用程序交互的界面,负责接收用户输入并展示处理结果。

  • 前端界面:如 HTML、CSS、JavaScript 等。

  • 后端控制器:如 Spring MVC 中的 @Controller 或 @RestController

职责:

  • 接收用户请求。

  • 调用业务逻辑层处理请求。

  • 将处理结果返回给用户。

2. 业务逻辑层(Business Logic Layer)

业务逻辑层是应用程序的核心,负责处理业务规则和逻辑。

  • 服务类:如 Spring 中的 @Service

  • 业务逻辑处理:如数据验证、业务规则计算等。

职责:

  • 接收表示层的请求。

  • 调用数据访问层获取或操作数据。

  • 处理业务逻辑并返回结果。

3.数据访问层(Data Access Layer)

数据访问层负责与数据库交互,执行数据的增、删、改、查操作。

  • Mapper 接口:如 MyBatis 中的 @Mapper

  • 数据访问对象(DAO):如 JPA 中的 JpaRepository

职责:

  • 提供数据访问接口。

  • 封装数据库操作细节。

  • 返回数据给业务逻辑层。

三层架构优势:

  1. 解耦:各层之间相对独立,便于维护和扩展。

  2. 可重用性:业务逻辑和数据访问逻辑可以被多个表示层复用。

  3. 可测试性:各层可以独立进行单元测试,提高代码质量。

  4. 可扩展性:便于添加新的功能或修改现有功能,而无需影响其他层。

三层架构交互流程:

   1.用户请求:用户通过表示层发起请求。

   2.表示层调用业务逻辑层:表示层将请求转发给业务逻辑层。

   3.业务逻辑层调用数据访问层:业务逻辑层根据业务规则调用数据访问层获取或操作数据。

   4.数据访问层返回数据:数据访问层执行数据库操作后返回数据。

   5.业务逻辑层处理数据:业务逻辑层处理返回的数据并返回结果。

   6.表示层返回结果:表示层将处理结果返回给用户。

实现代码解释:

控制器层(Controller)

存放控制器层代码,通常使用 @Controller 或 @RestController 注解。控制器层负责处理 HTTP 请求,并调用服务层的方法。

直接导入文件

package com.exercise.mybatisplus.controller;import com.exercise.mybatisplus.pojo.Result;
import com.exercise.mybatisplus.pojo.User;
import com.exercise.mybatisplus.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.*;/*** 用户相关接口* 这个类定义了与用户相关的所有 RESTful API 接口。*/
@Configuration
@CrossOrigin(origins = "http://localhost:5173", allowCredentials = "true")
@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;/*** 创建新用户* @param user 用户对象,包含用户的基本信息* @return 返回一个 Result 对象,表示操作的结果*/@PostMapping("/add")public Result addUser(@RequestBody User user){System.out.println("创建新用户");int code = userService.insertUser(user); // 调用服务层的 insertUser 方法if (code == 0) { // 如果返回码为 0,表示用户已存在return Result.success("该用户已存在");}return Result.success(user); // 返回创建成功的用户对象}
}

MyBatis-Plus Mapper接口(DAO层)

package com.exercise.mybatisplus.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.exercise.mybatisplus.pojo.User;
import org.apache.ibatis.annotations.Mapper;@Mapper
public interface UserMapper extends BaseMapper<User> {
}

实体类(POJO/DTO/VO等)

package com.exercise.mybatisplus.pojo;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;@TableName("user") // 指定数据库表名
public class User {@TableId(type= IdType.AUTO)// 关键注解:指定数据库自增private Integer userId;@TableField("username")   // 指定数据库中的字段名private String userName;private Integer age;public User() {}public User(Integer userId, String userName, Integer age) {this.userId = userId;this.userName = userName;this.age = age;}//Get和Set方法
}

服务层(Service) 

package com.exercise.mybatisplus.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.exercise.mybatisplus.pojo.User;public interface UserService extends IService<User> {int insertUser(User user);
}

服务层作用:

服务层的主要作用是处理业务逻辑,

  • 业务规则:实现业务逻辑,如验证、计算、转换等。

  • 事务管理:管理事务,确保数据的一致性。

  • 调用数据访问层:调用数据访问层(DAO 层)的方法,执行数据库操作。

  • 与控制器层交互:接收控制器层的请求,返回处理结果给控制器层。

impl文件内导入:

package com.exercise.mybatisplus.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.exercise.mybatisplus.mapper.UserMapper;
import com.exercise.mybatisplus.pojo.User;
import com.exercise.mybatisplus.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {@Autowiredprivate UserMapper userMapper;@Overridepublic int insertUser(User user) {return userMapper.insert(user);}
}

Navicat数据库:

创建一个数据库、表,跟后端idea连接。

配置application.properties 文件内容。

spring.application.name=_______自己的
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/______自己的
spring.datasource.username=root
spring.datasource.password=______自己的
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
mybatis.configuration.map-underscore-to-camel-case=true
server.port=______自己的,端口号可修改

Apifox:

在idea中配置apifox相关信息。

操作步骤:

先下载apifox插件在idea中。

http://www.dtcms.com/a/619249.html

相关文章:

  • 网站建设外包工作室自己电脑做网站空间
  • 用Coze打造智能文档整理助手:从创建到发布的完整指南
  • Linux命令大全-chmod命令
  • 网站别名制作app的公司有哪些
  • 上海网站建设-网建知识网站专题设计模板
  • 网站设计谈判东莞发布最新通告
  • Avalonia+ReactiveUI+SourceGenerators带返回值的异步命令实现
  • C++中自增自减运算符的重载
  • 用vs2010做网站应用程序脱机模板建站oem代理
  • 做得好的网站手机怎么进入国外网站
  • 网站建设视频vs南通做网站多少钱
  • 学院网站设计说明书网络营销的职能是什么
  • 营口化工网站建设支持wordpress的mysql
  • 网站科技感颜色城市焦点商城网站建设案例
  • Android 开发架构
  • 深入理解Ansible条件语句:从基础到高级应用
  • 怎样做海外淘宝网站地方生活门户网站有哪些
  • 学习周报二十二
  • 软件第三方检测机构选择的五大关键问题
  • 整站网站优化运营加强学院网站建设
  • 网站开发项目报告书商标设计网软件
  • 【电工】网线(T568B线序)的制作
  • 香蕉叶子病害分类数据集898张4类别
  • 用AI点亮心扉:我的数字人才技能大赛参赛项目——“心语之光”智能体全解析
  • 制作企业官网重庆seo案例
  • 【Linux驱动开发】Linux块设备驱动开发详解
  • 做私人网站 违法深圳seo优化多少钱
  • 做毕业设计免费网站建设vs和dw做网站的区别
  • 怎么把网站源码扒下来昆明网签备案查询系统
  • PPTX 中加入输入框和按钮,文本框不为空点击按钮跳转