Vue进阶-Vue cli项目搭建、项目基本操作、axios的使用、路由、Vuex

news2025/1/8 5:56:09

Vue进阶

Vue cli

一、Vue cli 概述

  • CLI 全称是 Commond Line Interface,翻译为命令行界面,俗称脚手架。
  • VueCLI是一个官方发布vue.js项目脚手架。
  • 用VueCLI 可快速搭建Vue开发环境以及对应webpack配置。

二、环境搭建

1、下载 node.js

  • 下载地址:https://nodejs.cn/download/

在这里插入图片描述

2、安装 node.js

(1)傻瓜式安装

​ 一路下一步操作(安装路径按自己的意思来),安装完成后会自动添加到环境变量中,这个时候你的cmd就会多了两个命令。

  • node:进入node.js环境
  • npm:安装模块用

(2)测试安装成功

在这里插入图片描述

3、安装Vue-cli

(1)打开cmd窗口输入命令

// 速度慢
npm install -g @vue/cli
// 使用镜像,速度快
npm install -g @vue/cli --registry=https://registry.npm.taobao.org

在这里插入图片描述

(2)测试Vue-cli安装成功

vue -v
或者
vue --version

在这里插入图片描述

Vue 项目基础操作

一、创建项目

1、进入要创建项目的目录,创建项目

vue create 项目名

在这里插入图片描述

2、选择模板,这时候按下键,选择最后一个自定义,回车执行

在这里插入图片描述

3、按上下键移动(带*的),空格选择,回车键执行

在这里插入图片描述

4、选择版本vue3.回车键执行

在这里插入图片描述

5、先输入y,回车键执行后选择In package.json,回车键执行

在这里插入图片描述

6、再次输入y,回车键执行,再次回车键执行

在这里插入图片描述

7、进入项目并启动

在这里插入图片描述

在这里插入图片描述

8、使用VSCode打开day0424

在这里插入图片描述

项目名
├── node_modules -- 项目的依赖
├── public -- 文件夹
├    ├── favicon.ico -- 网站顶部小图标
├    └── index.html -- 单页面开发,项目唯一页面
├── src -- 文件夹,主要代码都在里面
├    ├── assets -- img,js,css,都可以放在这里
├    ├── components -- 小组件,放在页面组件中的
├    ├── store -- 安装了vuex就会生成
├    ├── router -- 安装了vue-router就会生成,配置路由
├    ├── views -- 页面组件存放在这
├    ├── App.vue -- 根组件,靠它和唯一的页面连接的
├    └── main.js -- 整个项目的入口,引入全局配置
├── .gitignore -- git版本管理
├── babel.config.js -- babel的配置,不用管
├── jsconfig.json
├── package.json -- 项目的配置,和依赖的模块都在这
├── package-lock.json
├── README.md -- 项目的介绍
└── vue.config.js -- vue的配置信息

9、开启VSCode,启动项目(关掉之前的cmd)

在这里插入图片描述

  • 注意:这里在VSCode 中启动项目时,要先重启一下VSCode,重新打开终端。
    在这里插入图片描述

10、VSCode安装识别vue内容的插件

  • 保存后,项目自启动(热部署)

在这里插入图片描述

二、组件编写及使用

1、在views文件中创建自己的Vue文件,First.vue

<template>
    <div id="first">
        Hello World!
    </div>
</template>
<style>
    #id{
        width: 100px;
        height: 100px;
        background-color: aqua;
    }
</style>
<script>
// export default 的作用相当于:Vue.createApp(),默认的出口
export default {
    
}
</script>

2、在router的index.js中注册路由

import { createRouter, createWebHistory } from 'vue-router'
// 引入first.vue
import first from "../views/first.vue"

// 注册路由
const routes = [
  {
    path: '/f',
    // name: 'first', 可以不要
    // component的名字与import处对应
    component: first
  },

]

const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes
})

export default router

3、在APP.vue中书写路由导航

  • nav:导航标签
  • to:注册路由的路径
  • :to去的view页面 -
  • 注意:vue的模版中只有能一个根节点,所以在template中插入第二个元素就会报错
<template>
    <div id="first">
        Hello World!
    </div>
</template>
<style>
    #first{
        width: 100px;
        height: 100px;
        background-color: aqua;
    }
</style>
<script>
// export default 的作用相当于:Vue.createApp(),默认的出口
export default {
    
}
</script>

4、测试

在这里插入图片描述
在这里插入图片描述

5、在first.vue中书写数据解析代码

<template>
  <div id="first">
    <table border="1" cellpadding="0" cellspacing="0" width="500" align="center">
      <tr>
        <th>学号</th>
        <th>姓名</th>
        <th>年龄</th>
        <th>邮箱</th>
        <th>头像</th>
        <th>操作</th>
      </tr>
      <tr align="center" v-for="(stu,index) in students" v-bind:key="index">
        <td>{{stu.stuId}}</td>
        <td>{{stu.stuName}}</td>
        <td>{{stu.stuAge}}</td>
        <td>{{stu.stuEmail}}</td>
        <td>{{stu.stuPhoto}}</td>
        <td>
            <a href="javascript:void(0)" >删除</a>&nbsp;&nbsp;
            <a href="javascript:void(0)" >编辑</a>
        </td>
      </tr>
    </table>
  </div>
</template>
<style>
    #first{
        width: 500px;
        margin: auto;
    }
</style>
<script>
// export default 的作用相当于:Vue.createApp(),默认的出口
    export default {
        data() {
            return {
                students:[
                    {stuId:1,stuName:"mary",stuAge:18,stuEmail:"mary@qq.com",stuPhoto:"mary.jpg"},
                    {stuId:2,stuName:"tom",stuAge:18,stuEmail:"tom@qq.com",stuPhoto:"tom.jpg"},
                    {stuId:3,stuName:"lucy",stuAge:18,stuEmail:"lucy@qq.com",stuPhoto:"lucy.jpg"}
                ]
            }
        },
        methods: {
            
        },
    };
</script>

在这里插入图片描述

axios的使用

1、axios的安装

npm install axios

在这里插入图片描述

2、VsCode项目中加载axios

在这里插入图片描述

3、后端代码准备

(1)引入依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!--依赖父亲maven-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.11</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.etime</groupId>
    <artifactId>day0423</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>day0423</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <!--在SpringBoot在引入web,由启动器 (starter) 完成-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--引入Lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.16</version>
        </dependency>
        <!--数据库相关-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
            <scope>runtime</scope>
        </dependency>
        <!--单元测试相关-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!--引入热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>

        <!-- 导入Mybatis-Plus依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
    </dependencies>

    <!--构建插件-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

(2)实体类

package com.etime.day0423.pojo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@NoArgsConstructor
@AllArgsConstructor
@Data
public class Student {

    @TableId("sid")
    private int sid;
    private String sname;
    private int cid;
    private int sage;
    private String email;
    private String sphoto;
}

(3)持久层

package com.etime.day0423.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.etime.day0423.pojo.Student;
import org.springframework.stereotype.Repository;
//
@Repository
public interface StudentMapper extends BaseMapper<Student> {
/*
    BaseMapper<Student>:继承父接口,并指定类型
 */
}

(4)业务逻辑层

  • 实现类中
package com.etime.day0423.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.etime.day0423.mapper.StudentMapper;
import com.etime.day0423.pojo.Student;
import com.etime.day0423.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class StudentServiceImpl implements StudentService {
    @Autowired
    private StudentMapper studentMapper;

    @Override
    public int addStudent(Student student) {
        return studentMapper.insert(student);
    }

    @Override
    public int deleteStudent(int sid) {
        return studentMapper.deleteById(sid);
    }

    @Override
    public int updateStudent(Student student) {
        return studentMapper.updateById(student);
    }

    @Override
    public List<Student> getAllStudent() {
        List<Student> list = studentMapper.selectList(null);
        return list;
    }

    @Override
    public Page<Student> getStudentByPage(int currentPage,int size) {
        Page<Student> page = new Page<>(currentPage,size);
        return studentMapper.selectPage(page,null);
    }

    @Override
    public Page<Student> getStudentBySname(String sname, int current, int size) {
        QueryWrapper<Student> wrapper = new QueryWrapper<>();
        wrapper.like("sname",sname);
        Page<Student> page = new Page<>(current,size);
        return studentMapper.selectPage(page,wrapper);
    }
}

(5)控制层

package com.etime.day0423.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.etime.day0423.pojo.Student;;
import com.etime.day0423.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@CrossOrigin
public class StudentController {


    @Autowired
    private StudentService studentService;
    @GetMapping("/student")
    public List<Student> getAllStudent() {
        List<Student> list = studentService.getAllStudent();
        return list;
    }

    @PostMapping("/student")
    public boolean addStudent(Student student){
        return studentService.addStudent(student) != 0 ? true:false;
    }

    @DeleteMapping("/student/{sid}")
    public boolean deleteStudent(@PathVariable("sid") int sid){
        return studentService.deleteStudent(sid) != 0 ? true:false;
    }
    @PutMapping("/student")
    public boolean updateStudent(Student student){
        return studentService.updateStudent(student) != 0 ? true:false;
    }

    @GetMapping("/student/page")
    public Page<Student> getStudentByPage(int currentPage,int size){
        return studentService.getStudentByPage(currentPage,size);
    }


    @GetMapping("/student/like")
    public Page<Student> getStudentByName(String sname,int currentPage,int size){
        return studentService.getStudentBySname(sname,currentPage,size);
    }
}

4、编写前端代码,修改first.vue中代码

<template>
  <div id="first">
    <table border="1" cellpadding="0" cellspacing="0" width="500" align="center">
      <tr>
        <th>学号</th>
        <th>姓名</th>
        <th>年龄</th>
        <th>邮箱</th>
        <th>头像</th>
        <th>操作</th>
      </tr>
      <tr align="center" v-for="(stu,index) in students" v-bind:key="index">
        <td>{{stu.sid}}</td>
        <td>{{stu.sname}}</td>
        <td>{{stu.sage}}</td>
        <td>{{stu.email}}</td>
        <td>
            <img :src="'http://localhost:8888/teacher/'+stu.sphoto" style="width:50px;height50px; border-radius: 50%;">
        </td>
        <td>
            <a href="javascript:void(0)" >删除</a>&nbsp;&nbsp;
            <a href="javascript:void(0)" >编辑</a>
        </td>
      </tr>
    </table>
    <div style="width: 500px; margin: auto; text-align: right">
        <a href="javascript:void(0)" @click="getStudentByPage(1)">首页</a>
        <a href="javascript:void(0)" @click="getStudentByPage(prevPage)">上一页</a>
        {{ current }}/{{ pages }}
        <a href="javascript:void(0)" @click="getStudentByPage(nextPage)">下一页</a>
        <a href="javascript:void(0)" @click="getStudentByPage(pages)">尾页</a>
  </div>
  </div>
</template>
<style>
    #first{
        width: 500px;
        margin: auto;
    }
</style>
<script>
    import axios from 'axios'
// export default 的作用相当于:Vue.createApp(),默认的出口
    export default {
        data() {
            return {
                students:"",
                current: 1,
                size: 5,
                pages: "",
                prevPage: "",
                nextPage: "",
            }
        },
        methods: {
            getStudentByPage(page) {
                let content = new URLSearchParams();
                content.append("currentPage", page);
                content.append("size", this.size);
                axios({
                    url: "http://localhost:8888/student/page",
                    method: "get",
                    params: content,
                }).then((resp) => {
                    console.log(resp.data);
                    this.students = resp.data.records;
                    this.pages = resp.data.pages;
                    this.current = resp.data.current;
                    if (this.current == 1) {
                    this.prevPage = 1;
                    } else {
                    this.prevPage = this.current - 1;
                    }
                    if (this.current == this.pages) {
                    this.nextPage = this.pages;
                    } else {
                    this.nextPage = this.current + 1;
                    }
                });
                },
        },
        created() {
            this.getStudentByPage(1);
        },
    };
</script>

在这里插入图片描述

Vue路由

一、路由概述

  • 路由的本质:一种对应关系,(该处的路由含义同之前nodejs的路由)。
  • 路由根据不同的url请求,,返回对应不同的资源。那么url地址和真实的资源之间就有一种对应的关系,就是路由。

二、一级路由示例代码

1、创建多个vue文件

(1)FoundMusic.vue

<template>
    <h1>发现音乐</h1>
</template>

<style >

</style>

(2)MyMusic.vue

<template>
    <h1>我的音乐</h1>
</template>

<style >

</style>

(3)Interest.vue

<template>
    <h1>关注</h1>
</template>

<style >

</style>

2、注册路由

import { createRouter, createWebHistory } from 'vue-router'
import first from "../views/first.vue"
import MyMusic from "../views/MyMusic.vue"
import Interest from "../views/Interest.vue"

// 注册路由
const routes = [
  {
    path: '/f',
    // name: 'first', 可以不要
    // component的名字与import处对应
    component: first
  },
  {
    // 方式二
    path: '/found',
    component: () => import(/* webpackChunkName: "about" */ '../views/FoundMusic.vue')
  },
  {
    path: '/my',
    component: MyMusic
  },
  ,
  {
    path: '/interest',
    component: Interest
  },
]

const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes
})

export default router

3、在App.vue中编写代码

<template>
  <nav>
    <router-link to="/f">first</router-link>&nbsp;|
     <router-link to="/found">发现音乐</router-link>&nbsp;|
      <router-link to="/my">我的音乐</router-link>&nbsp;|
       <router-link to="/interest">关注</router-link>
    <router-view/>
  </nav>
</template>

<style>
  
</style>

4、结果

在这里插入图片描述

二、二级路由

1、childFound.vue

<template>
    <h1>排行榜</h1>
</template>

2、childFound02.vue

<template>
    <h1>网络热歌</h1>
</template>

3、注册二级路由,在index.js的"/found"中

 {
    // 方式二
    path: '/found',
    component: () => import(/* webpackChunkName: "about" */ '../views/FoundMusic.vue'),
    children:[
      {
        path: '/child01',
        component:() => import('../views/childFound.vue')
      },
      {
        path: '/child02',
        component:() => import('../views/childFound02.vue')
      }
    ]
  }

4、修改FoundMusic.vue中代码

<template>
    <nav>
        <router-link to="/child01">排行榜</router-link>>&nbsp;|
        <router-link to="/child02">网络热歌</router-link>>
        <router-view/>
    </nav>
</template>

<style >

</style>

5、测试结果

在这里插入图片描述

VueX

一、VUeX概述

vue官方提供的独立于组件体系之外的,管理公共数据的工具。

二、vuex分块

1、state

​ state: 统一定义公共数据(类似于data(){return {a:1, b:2,xxxxxx}})

2、mutations

​ mutations : 使用它来修改数据(类似于methods)

3、getter

​ 类似于computed(计算属性,对现有的状态进行计算得到新的数据-------派生 )

4、action

​ actions: 发起异步请求

5、modules

​ modules: 模块拆分

三、示例代码

1、在store文件夹的index.js中设计共享函数

import { createStore } from 'vuex'

export default createStore({
  state: {
    sid:"",
  },
  getters: {
  },
  mutations: {
  },
  actions: {
  },
  modules: {
  }
})

2、在first.vue中设计数据及点击事件

(1)点击事件

<td>
            <a href="javascript:void(0)" @click="deleteStudentBySid(stu.sid)">删除</a>&nbsp;&nbsp;
            <a href="javascript:void(0)" @click="updateStudentBySid(stu.sid)">编辑</a>
        </td>

(2)点击事件函数

updateStudentBySid(sid){
     // 切换当前路由到editStudent
     this.$router.replace("/edit");
     // 将sid放入vuex的state中
     this.$store.state.sid = sid;
},

(3)注意事项

​ 点击事件中我们要在当前页面 加载其他组件用于替换当前组件,所以 用到了this.$router.replace(“/edit”);并且写组件需要在在router中的index.js中注册。

3、注册新组件

(1)编写新组件editStudent.vue页面

<template>
     <form>
        学号<input name="sid" type="text" ><br >
        姓名<input name="sname" type="text" ><br >
        年龄<input name="sage" type="text" ><br >
        性别 <input name="sgender" type="radio" value="男">男 
        <input name="sgender" type="radio" value="女">女<br >
        邮箱<input name="semail" type="text" ><br >
        <input type="button" value="保存" >
  </form>
</template>
<style >

</style>
<script>
    export default {
        data() {
            return {
                
            }
        },
        methods: {
            
        },
        created() {
            // 获取vuex的state的sid的值
            let sid = this.$store.state.sid;
            console.log("eidtStudent中获取到的"+sid);
        },
    }
</script>

(2)注册editStudent.vue

 {
    path: '/edit',
    component: editStudent
  }

(3)测试

在这里插入图片描述

解决根目录问题

1、警告提示

在这里插入图片描述

2、注册路由修改,在index.js中

{
    path: '/',
    // name: 'first', 可以不要
    // component的名字与import处对应
    component: first
  },
  {
    path: '/f',
    // name: 'first', 可以不要
    // component的名字与import处对应
    component: first
  },

3、测试

​ 当你点击其他组件,回到上面我们修改的注册路由时,就会看到只有服务器地址,没有注册的path。

```

(2)注册editStudent.vue

 {
    path: '/edit',
    component: editStudent
  }

(3)测试

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/458020.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4 redis高可用

所谓的高可用&#xff0c;也叫HA&#xff08;High Availability&#xff09;&#xff0c;是分布式系统架构设计中必须考虑的因素之一&#xff0c;它通常是指&#xff0c;通过设计减少系统不能提供服务的时间。如果在实际生产中&#xff0c;如果redis只部署一个节点&#xff0c;…

Compiler- 自增运算

我们来看一下C语言中的前自增&#xff08;i&#xff09;和后自增(i) 这个经典案例。大家在学习C的时候肯定学过前自增是先自增&#xff0c;然后将结果用于计算&#xff1b;后自增是先参与计算&#xff0c;再增加。 好&#xff0c;看一下这段代码的结果&#xff1a; #include …

PE文件反编译为python脚本流程

1、查壳 DetectltEasy、PeiD查壳 2、脱壳 常见打包工具PyInstaller&#xff0c;脱壳方法 &#xff08;1&#xff09;用pyinstxtractor.py脱壳&#xff0c;用”python pyinstxtractor.py 1.exe“命令&#xff0c;生成“.exe文件名_extracted” &#xff08;2&#xff09;用…

Python+Qt人脸识别门禁管理系统

程序示例精选 PythonQt人脸识别门禁管理系统 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<PythonQt人脸识别门禁管理系统>>编写代码&#xff0c;代码整洁&#xff0c;规则&am…

1 ROS2介绍与安装

1 ROS2介绍与安装 1.1 Ubuntu配置与ROS2安装1.1.1 Ubuntu22.04安装1.1.2 下载安装ROS21.1.3 配置ROS2环境并测试 1.2 使用VSCode搭建ROS2开发环境1.2.1 安装并配置VSCode1.2.2 创建ROS2工程的方法1.2.3 使用VSCode创建ROS2的C/C项目1.2.4 使用VSCode创建ROS2的Python项目 1.3 R…

Samba配置回收站功能

部门确实需要给Samba配置回收站&#xff0c;查阅了下回收站的资料&#xff0c;配置也挺简单的。 配置说明&#xff1a; 在Samba配置回收站功能中各参数作用如下。 (1) vfs object recycle&#xff1a;载入Samba用于回收站功能的模块recycle.so。 (2) recycle:repository /Pr…

企业如何保护外发文件的数据安全?

随着数字化转变&#xff0c;企业的业务文件大多通过电子形式在内外部流转。这增加了外发文件数据泄露或被篡改的风险&#xff0c;如何保护外发文件安全已成为企业不容忽视的课题。 企业外发文件&#xff0c;特别是电子文件&#xff0c;存在一定的数据安全风险&#xff1a; 文件…

第十二章 外观模式

文章目录 前言一、外观模式基本介绍完整代码DVD类爆米花类投影仪类屏幕类立体声类灯光类家庭影院类进行聚合Client测试类 二、 外观模式在MyBatis框架应用的源码分析三、外观模式的注意事项和细节 前言 一、外观模式基本介绍 完整代码 DVD类 package tanchishell.SJMS.faca…

Layui 2.8.0 正式发布,朴实归来

Layui 是一套开源的 Web UI 组件库&#xff0c;采用自身轻量级模块化规范&#xff0c;遵循原生态的 HTML/CSS/JavaScript 开发模式&#xff0c;极易上手&#xff0c;拿来即用。其风格简约轻盈&#xff0c;而内在雅致丰盈&#xff0c;甚至包括文档在内的每一处细节都经过精心雕琢…

On the Efficacy of Knowledge Distillation 解析

paper&#xff1a;On the Efficacy of Knowledge Distillation 本文的题目是《论知识蒸馏的有效性》&#xff0c;主要是对教师模型并不是越大越好这一现象进行研究&#xff0c;并提出了缓解方法&#xff1a;early stop。 Bigger models are not better teachers 知识蒸馏背…

S32k3系列开发学习(FlexCAN)

前言 由于之前没有接触过CAN总线模块&#xff0c;对这一块的知识仍比较陌生&#xff0c;于是乎想简单梳理一下CAN总线的工作流程&#xff0c;加深理解。 一、CAN是什么&#xff1f; 参考&#xff1a;https://zhuanlan.zhihu.com/p/346696648 二、CAN框架 各模块功能如下&am…

NLP基础:标注器Label Studio的入门使用

目录 一、环境准备 二、操作 文章来源&#xff1a; 简介&#xff1a; Label Studio是一个开源的数据标注工具&#xff0c;它可以用于各种机器学习和深度学习项目。它的主要目的是帮助数据科学家和机器学习工程师快速、高效地标注数据&#xff0c;以构建和训练准确的机器学…

Linux入门---开发的Linux命令手册

Linux 基础知识 基础 启动过程&#xff1a; 内核的引导。运行 init。系统初始化。建立终端 。用户登录系统。 命令介绍 磁盘 #文件#a&#xff1a;相当於 -pdr 的意思&#xff0c;至於 pdr 请参考下列说明&#xff1b;(常用)&#xff1b;f&#xff1a;为强制(force)进行&…

Ubuntu20.04使用多卡训练HyperNetwork模型和LoRA模型全流程及疑难问题解决方案

目录 一. LoRA模型多卡训练1.1 安装xformer等库1.2 设置路径1.3 多卡训练 二. LoRA模型多卡训练疑难报错解决方案多卡训练报错 软硬件配置&#xff1a; CPU: AMD 5800 8core 16Thread GPU: NVIDIA RTX 3090 *1 NVIDIA TITAN RTX *1 OS: Ubuntu20.04 一. LoRA模型多卡训练 1.1 …

JavaScript概述四(DOM文档对象模型)

1.DOM(Document Object Model) 会把网页里面的元素当成对象去操作,包含对象的属性,属性值,方便我们去 操作网页。 整个页面最终会形成一个对象 :document ,页面里面的所有的元素(如 标签 ) 最终都会转换成 js 里面的对象。 1.1 获取页面的元素&#xff08;通过选择器&#xff0…

S32K3系列单片机学习

前言 定时器中断&#xff0c;每个平台的实现方式均有差异&#xff0c;从51单片机通过寄存器配置实现定时器周期计数&#xff0c;再到使用HAL库配置STM32的定时器&#xff0c;他们的实现原理都是大同小异的&#xff0c;只不过不同的平台使用的底层库不同&#xff0c;导致实现的…

公司25k招了一个测试员不会自动化,试用期没过就赶走了...

最近翻了一些网站的招聘信息&#xff0c;把一线大厂和大型互联网公司看了个遍&#xff0c;发现市场还是挺火热的&#xff0c;虽说铜三铁四&#xff0c;但是软件测试岗位并没有削减多少&#xff0c;建议大家有空还是多关注和多投简历&#xff0c;不要闭门造车&#xff0c;错过好…

手推FlinkML2.2(一)

Java 快速入门 # 本文档提供了一个关于如何使用Flink ML的快速入门。阅读本文档的用户将被指导提交一个简单的Flink作业&#xff0c;用于训练机器学习模型并提供预测服务。 求助&#xff0c;我卡住了&#xff01;# 如果你遇到困难&#xff0c;请查看社区支持资源。特别是&…

第一个 Servlet 程序

1. 创建项目 使用 IDEA 创建一个 Maven 项目. 1.1、File -> New Project Name:javaservlet2 Location:选择要存放的路径 Language:Java Build system:Maven 点击Create按钮 1.2、Pom.xml引入依赖 依赖包来源&#xff1a; <dependencies> <!-- https…

【Hive实战】探索Hive 2.X以及更早版本的MetaStore

探索Hive 2.X以及更早版本的MetaStore 文章目录 探索Hive 2.X以及更早版本的MetaStore概述配置元数据服务和元数据存储库基础配置参数其他配置参数默认配置配置元服务数据库使用内嵌模式的Derby库使用远程数据存储库 配置元数据服务本地/内嵌服务配置远程服务配置 元数据服务配…