Vue及项目结构介绍

news2024/10/21 12:45:01

今天滴学习目标!!!

  • 项目结构介绍
    • 1.Vue 项目文件结构
    • 2. 文件结构详解
      • 2.1 index.html
      • 2.2 src/main.js
      • 2.3 src/App.vue
      • 2.4 src/components/
      • 2.5 src/assets/
      • 2.6 package.json
    • 3. 项目启动

  首先我们先学习Vue项目结构,我们创建Vue项目时,它会生成一个标准的项目结构。以下是项目结构介绍。后面我们就开始该怎么用Vue的指令。

项目结构介绍

1.Vue 项目文件结构

Vue
│
├── node_modules/          # 依赖包
│
├── public/                # 静态资源
│   └── favicon.ico        # 图片资源(网站图标)
│
├── src/                   # 源代码
│   ├── assets/            # 资源模板 (静态资源目录 如:图片、样式等)
│   ├── components/        # 通用组件 (存放 Vue 组件)
│   ├── App.vue            # 根组件 (所有页面的入口)
│   ├── main.js            # 入口JS文件 (项目的主入口文件)
│
├── index.html             # 入口HTML文件
├── package.json           # 项目的依赖和配置
├── package-lock.json      # 记录了项目中所有依赖的精确版本信息
├── vue.config.js          # Vue 配置文件

大家喜欢哪个嘞?
在这里插入图片描述

2. 文件结构详解

2.1 index.html

  在Vue项目中,index.html是项目的入口文件,用于初始化Vue应用程序并定义其HTML结构。以下是index.html在Vue项目中的典型代码示例:

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>Vue App</title>  
    <!-- 引入Vue框架(这里以CDN方式引入为例) -->  
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>  
    <!-- 引入Vue Router(如果使用了路由) -->  
    <!-- <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script> -->  
    <!-- 引入其他必要的库或样式 -->  
    <!-- <link rel="stylesheet" type="text/css" href="path/to/your/stylesheet.css"> -->  
    <!-- <script src="path/to/your/library.js"></script> -->  
</head>  
<body>  
    <!-- Vue实例挂载的容器 -->  
    <div id="app"></div>  
  
    <!-- 引入构建后的JavaScript文件(通常由Webpack等构建工具生成) -->  
    <!-- 注意:在实际项目中,这个路径可能会根据构建配置有所不同 -->  
    <script src="/dist/build.js"></script>  
  
    <!-- 引入自定义脚本(可选) -->  
    <!-- <script src="./path/to/custom-script.js"></script> -->  
</body>  
</html>

关键点说明:

  1. DOCTYPE和HTML标签:
    • <!DOCTYPE html> 声明文档类型,确保浏览器以标准模式渲染页面。
    • <html lang="en"> 定义HTML文档的根元素,并设置语言属性为英语(可以根据需要更改为其他语言)。
  2. 头部(head)部分:
    • <meta charset="UTF-8"> 设置文档的字符编码为UTF-8。
    • <meta name="viewport" content="width=device-width, initial-scale=1.0"> 设置视口,确保页面在移动设备上正确显示。
    • <title> 设置页面的标题,这将在浏览器的标签页上显示。
    • 引入Vue框架和其他必要的库(如Vue Router),这里以CDN方式引入Vue为例。
  3. 主体(body)部分:
    • <div id="app"></div> 是Vue实例挂载的容器,Vue应用将在这个容器内进行渲染。
    • 引入构建后的JavaScript文件(如/dist/build.js),这个文件通常由Webpack等构建工具生成,包含了Vue应用的编译结果。
  4. 自定义脚本(可选):
    如果需要在index.html中引入自定义脚本,可以在</body>标签之前添加<script src="./path/to/custom-script.js"></script>

注意:在实际的Vue项目中,index.html的内容可能会根据项目的构建配置和使用的工具链有所不同。例如,如果你使用了Vue CLI来创建项目,那么index.html文件通常会位于public目录下,并且构建工具会自动处理JavaScript和CSS文件的引用。此外,在开发过程中,你可能会使用热重载(hot-reload)功能来实时查看更改效果,而在生产环境中,构建工具会生成优化后的代码以提高性能。

2.2 src/main.js

  在Vue项目中,src/main.js 是项目的入口JavaScript文件,它负责初始化Vue实例、配置Vue Router(如果使用)、引入Vuex(如果使用状态管理)、注册全局组件、安装Vue插件以及挂载Vue应用到DOM元素上。以下是 src/main.js 在Vue项目中的典型代码示例:

// 引入Vue框架  
import Vue from 'vue';  
  
// 引入App组件(根组件)  
import App from './App.vue';  
  
// 引入Vue Router(如果使用了路由)  
import router from './router';  
  
// 引入Vuex(如果使用了状态管理)  
// import store from './store';  
  
// 引入全局样式或插件(可选)  
// import './assets/styles.css';  
// import SomePlugin from 'some-plugin';  
  
// 如果使用了Vuex,则在创建Vue实例时传入store  
// Vue.config.productionTip = false; // 阻止vue在启动时生成生产提示  
  
new Vue({  
  // 渲染挂载点  
  el: '#app',  
    
  // 挂载的组件实例  
  render: h => h(App),  
    
  // 如果使用了Vue Router,则传入router配置  
  router,  
    
  // 如果使用了Vuex,则传入store实例  
  // store,  
    
  // 其他Vue实例的配置选项(如全局混入、全局指令等)  
  // ...  
}).$mount('#app'); // 这一步在render函数中已经隐式完成了,通常不需要显式调用$mount  
  
// 注意:在Vue 2.x中,通常不需要显式调用$mount('#app'),因为render函数已经指定了挂载点。  
// 但在某些情况下(如需要在JavaScript中动态创建Vue实例时),可能需要显式调用$mount。  
// 在上面的示例中,由于render函数已经指定了挂载到#app,所以$mount('#app')是多余的。  
  
// 如果使用了插件,如Vuex或第三方UI库,则需要在Vue实例创建之前或之后调用它们的安装方法。  
// 例如:Vue.use(SomePlugin);

关键点说明:

  1. 引入Vue框架:使用 import Vue from ‘vue’; 引入Vue框架。
  2. 引入App组件:使用 import App from ‘./App.vue’; 引入根组件 App.vue。
  3. 引入Vue Router:如果项目使用了Vue Router进行路由管理,则使用 import router from ‘./router’; 引入路由配置。
  4. 引入Vuex:如果项目使用了Vuex进行状态管理,则使用 import store from ‘./store’; 引入状态管理配置,并在创建Vue实例时传入 store。
  5. 创建Vue实例:使用 new Vue({…}) 创建一个新的Vue实例,并传入必要的配置选项,如 el(挂载点,但通常与 render 函数一起使用而不需要显式指定)、render(渲染函数,用于指定挂载的组件)、router(路由配置)、store(状态管理配置)等。
  6. 挂载Vue应用:在Vue 2.x中,由于 render 函数已经指定了挂载点,所以通常不需要显式调用 .$mount(‘#app’)。但在某些特殊情况下,可能需要显式调用 $mount 方法来挂载Vue实例。
  7. 全局配置:可以在创建Vue实例之前或之后进行全局配置,如引入全局样式、插件、混入、指令等。

注意:上述代码示例是基于Vue 2.x版本的。在Vue 3.x中,由于引入了Composition API和全局API的变更,main.js 的内容可能会有所不同。例如,Vue 3.x 中不再推荐使用 Vue.use() 来安装插件(尽管它仍然有效),而是推荐使用 app.use() 方法来安装插件到特定的Vue应用实例上。

2.3 src/App.vue

  在Vue项目中,src/App.vue 是项目的根组件文件,它通常包含了整个Vue应用的顶级模板、脚本和样式。App.vue 组件是Vue实例挂载的组件,所有其他组件都会作为其子组件或后代组件被引入和使用。

以下是 src/App.vue 在Vue项目中的典型代码示例:

<template>  
  <div id="app">  
    <!-- 应用的顶级模板内容 -->  
    <router-view/> <!-- 如果使用了Vue Router,则这个组件用于显示当前路由对应的组件 -->  
    <!-- 或者你可以在这里直接放置其他组件 -->  
    <!-- <MyComponent /> -->  
  </div>  
</template>  
  
<script>  
// 引入需要的组件(可选)  
// import MyComponent from './components/MyComponent.vue';  
  
export default {  
  name: 'App', // 组件名称,用于调试  
  // 组件的props(如果有的话)  
  // props: { ... },  
  // 组件的数据  
  data() {  
    return {  
      // ...  
    };  
  },  
  // 组件的计算属性  
  computed: {  
    // ...  
  },  
  // 组件的方法  
  methods: {  
    // ...  
  },  
  // 组件的生命周期钩子  
  created() {  
    // ...  
  },  
  mounted() {  
    // ...  
  },  
  // ... 其他生命周期钩子  
  // 组件的样式(可选,通常使用单文件组件的<style>标签)  
  // styles: { ... }, // 注意:这不是Vue的标准属性,仅用于说明  
  // 如果使用了Vue Router,则不需要在这里处理路由逻辑,<router-view>会自动处理  
};  
</script>  
  
<style>  
/* 组件的CSS样式 */  
#app {  
  /* 样式定义 */  
  font-family: Avenir, Helvetica, Arial, sans-serif;  
  -webkit-font-smoothing: antialiased;  
  -moz-osx-font-smoothing: grayscale;  
  text-align: center;  
  color: #2c3e50;  
  margin-top: 60px;  
}  
</style>

关键点说明:

  1. 模板(template):定义了组件的HTML结构。在这个例子中,<div id="app"> 是根元素,<router-view/> 是Vue Router用于显示当前路由对应组件的插槽。如果你没有使用Vue Router,你可以在这里直接放置其他组件的标签,如 <MyComponent />
  2. 脚本(script):包含了组件的JavaScript逻辑。在这个例子中,我们导出了一个包含组件选项的对象。这个对象可以包含组件的名称、数据、计算属性、方法、生命周期钩子等。
  3. 样式(style):定义了组件的CSS样式。在这个例子中,我们为 #app 元素添加了一些基本的样式。注意,在单文件组件中,样式是局部作用于当前组件的,除非你使用了全局样式或特殊的CSS预处理器指令。

在实际的Vue项目中,App.vue 的内容会根据项目的需求和结构有所不同。例如,你可能会在 <template> 中添加更多的HTML结构,在 <script> 中引入和使用Vuex store、Vue Router的钩子、第三方库等,或者在 <style> 中使用CSS预处理器(如Sass、Less)来编写更复杂的样式。

2.4 src/components/

  在Vue项目中,src/components/ 是一个目录,用于存放Vue组件的源代码文件。这些组件是Vue应用构建块,可以包含模板(HTML)、脚本(JavaScript)和样式(CSS),并且它们可以被其他组件复用。

每个组件通常是一个 .vue 文件,这是一个单文件组件(Single File Component,简称SFC),它允许你将模板、脚本和样式封装在一个文件中。

以下是一个典型的Vue组件文件结构,假设它位于 src/components/MyComponent.vue:

<template>  
  <div class="my-component">  
    <!-- 组件的HTML结构 -->  
    <h1>{{ title }}</h1>  
    <button @click="handleClick">Click Me</button>  
  </div>  
</template>  
  
<script>  
export default {  
  name: 'MyComponent', // 组件名称  
  props: {  
    // 接收来自父组件的数据  
    initialTitle: {  
      type: String,  
      default: 'Hello, World!'  
    }  
  },  
  data() {  
    return {  
      // 组件的局部状态  
      title: this.initialTitle  
    };  
  },  
  methods: {  
    // 组件的方法  
    handleClick() {  
      this.title = 'Button Clicked!';  
    }  
  }  
  // 还可以包含计算属性、生命周期钩子、监听器等  
};  
</script>  
  
<style scoped>  
/* 组件的局部样式 */  
.my-component {  
  text-align: center;  
  margin-top: 20px;  
}  
  
button {  
  padding: 10px 20px;  
  font-size: 16px;  
}  
</style>

关键点说明:

  1. 模板(template):定义了组件的HTML结构。在这个例子中,有一个标题和一个按钮。
  2. 脚本(script):包含了组件的JavaScript逻辑。在这个例子中,我们导出了一个包含组件选项的对象,如组件名称、接收的props、局部状态(data)、方法(methods)等。
  3. 样式(style):定义了组件的CSS样式。在这个例子中,我们使用了 scoped 属性,这意味着这些样式只会应用于当前组件的元素,而不会影响到其他组件。

在 src/components/ 目录下,你可以创建多个 .vue 文件来定义不同的组件。然后,你可以在 App.vue 或其他组件中通过 这样的标签来引入和使用这些组件。

记住,组件化是Vue框架的一个核心概念,它允许你将UI拆分成可复用的、独立的部分,从而使你的应用更加模块化和可维护。

2.5 src/assets/

在Vue项目中,src/assets/ 是一个目录,专门用于存放静态资源文件。这些资源文件包括但不限于图片、字体文件、样式表(CSS)、以及其他可能在项目中用到的媒体文件或静态数据文件。

由于 src/assets/ 目录下的文件主要是静态资源,因此通常不需要编写代码(如 .vue 文件中的模板、脚本和样式)。相反,这些资源文件会被直接引用或导入到Vue组件或其他JavaScript文件中。

以下是一些在 src/assets/ 目录中可能存在的文件类型及其引用方式的示例:

  1. 图片文件:
    • 文件类型:.png、.jpg、.svg 等。
    • 引用方式:在Vue组件的模板中,可以使用相对路径来引用这些图片。例如,如果有一张图片位于 src/assets/images/logo.png,则可以在模板中这样引用它:<img src="@/assets/images/logo.png" alt="Logo">。注意,@ 符号通常在Vue项目中配置为 src 目录的别名。
  2. 字体文件:
    • 文件类型:.woff、.woff2、.ttf、.eot 等。
    • 引用方式:这些字体文件通常会在CSS文件中被引用,用于定义自定义字体。例如,在Vue组件的 <style> 标签内或单独的CSS文件中,可以这样引用字体文件:@font-face { font-family: ‘MyFont’; src: url(‘@/assets/fonts/myfont.woff2’) format(‘woff2’); }。
  3. 样式表(CSS):
    • 文件类型:.css。
    • 引用方式:在Vue组件的 <style> 标签内,可以通过 @import 语句来引入外部的CSS文件。例如:@import ‘@/assets/css/styles.css’;。然而,更常见的是将样式直接写在组件的 <style> 标签内,或者使用CSS预处理器(如Sass、Less)来编写样式。
  4. 其他静态数据文件:
    • 文件类型:.json、.txt、.csv 等。
    • 引用方式:这些文件可以通过JavaScript的 import 语句或 fetch API 来加载。例如,如果有一个JSON文件位于 src/assets/data/config.json,则可以使用 import config from ‘@/assets/data/config.json’ 来导入它(注意,这种方式要求Webpack等构建工具支持JSON文件的导入)。

注意:由于 src/assets/ 目录下的文件是静态资源,它们通常不会被Webpack等构建工具进行代码分割或懒加载。因此,如果项目中包含大量的静态资源文件,可能会对应用的加载性能产生影响。为了优化性能,可以考虑使用CDN来托管静态资源、对图片进行压缩和优化、以及使用代码分割和懒加载等技术来减少初始加载时间。

2.6 package.json

  在Vue项目中,package.json 是一个非常重要的文件,它位于项目的根目录,并包含了项目的元数据以及项目所依赖的npm包(Node Package Manager)。这个文件是Node.js项目(包括Vue项目)的标准配置文件,用于定义项目的名称、版本、描述、作者、脚本、依赖、开发依赖等信息。

以下是一个Vue项目典型的 package.json 文件的内容示例:

{  
  "name": "my-vue-project",  
  "version": "1.0.0",  
  "description": "A Vue.js project",  
  "author": "Your Name <your.email@example.com>",  
  "private": true,  
  "scripts": {  
    "serve": "vue-cli-service serve",  
    "build": "vue-cli-service build",  
    "lint": "vue-cli-service lint"  
  },  
  "dependencies": {  
    "vue": "^2.6.11",  
    "vue-router": "^3.2.0",  
    "axios": "^0.21.1",  
    // 其他生产环境依赖的包  
  },  
  "devDependencies": {  
    "@vue/cli-plugin-babel": "~4.5.0",  
    "@vue/cli-plugin-eslint": "~4.5.0",  
    "@vue/cli-service": "~4.5.0",  
    "babel-eslint": "^10.1.0",  
    "eslint": "^6.7.2",  
    "eslint-plugin-vue": "^6.2.2",  
    // 其他开发环境依赖的包  
  },  
  "eslintConfig": {  
    "root": true,  
    "env": {  
      "node": true  
    },  
    "extends": [  
      "plugin:vue/essential",  
      "eslint:recommended"  
    ],  
    "parserOptions": {  
      "parser": "babel-eslint"  
    },  
    "rules": {  
      // ESLint规则配置  
    }  
  },  
  "browserslist": [  
    "> 1%",  
    "last 2 versions",  
    "not dead"  
  ]  
}

关键点说明:

  1. name:项目的名称。
  2. version:项目的版本号。
  3. description:项目的描述。
  4. author:项目的作者信息。
  5. private:如果设置为 true,表示这是一个私有包,不会被发布到npm上。
  6. scripts:定义了项目可以运行的脚本命令。在Vue项目中,通常包括 serve(启动开发服务器)、build(构建生产环境的包)和 lint(运行ESLint代码检查)等命令。
  7. dependencies:列出了项目在生产环境中需要安装的npm包及其版本号。
  8. devDependencies:列出了项目在开发环境中需要安装的npm包及其版本号。这些包通常用于开发过程中的构建、测试和调试。
  9. eslintConfig:ESLint的配置信息,用于定义代码检查规则。
  10. browserslist:指定了项目支持的浏览器范围,这有助于Babel和Autoprefixer等工具根据目标浏览器自动调整代码。

在Vue项目中,package.json 文件通常是通过Vue CLI(Vue脚手架)在创建项目时自动生成的。你可以通过运行 npm install 命令来安装所有依赖的包,运行 npm run serve 命令来启动开发服务器,以及运行 npm run build 命令来构建生产环境的包。

3. 项目启动

在Vue项目中,从项目启动到网页访问的过程涉及多个步骤和组件的交互。下面是一个简化的顺序描述,以及在这个过程中可能涉及的代码和概念。

  1. 项目启动
    当你运行 npm run serve(或 yarn serve,取决于你使用的包管理器)时,Vue CLI 会执行以下操作:

    • 读取package.json: 找到与 serve 脚本关联的命令,通常是 vue-cli-service serve。
    • 启动开发服务器: Vue CLI 使用 webpack-dev-server 或类似的工具来启动一个本地开发服务器。
    • 编译和监听文件变化: webpack 开始编译你的项目,包括所有的 .vue 文件、JavaScript、CSS 等,并将它们打包成一个或多个bundle。同时,webpack 会监听文件系统的变化,以便在文件被修改时重新编译。
  2. 构建Vue实例和挂载根组件
    在编译后的代码中,会有一个入口文件(通常是 main.js 或 main.ts),它负责创建Vue实例并挂载根组件。

    // main.js 或 main.ts  
    import Vue from 'vue';  
    import App from './App.vue';  
    import router from './router';  
    import store from './store';  
    
    Vue.config.productionTip = false;  
    
    new Vue({  
    router,  
    store,  
    render: h => h(App)  
    }).$mount('#app');
    
    • 创建Vue实例:通过 new Vue({…}) 创建一个新的Vue实例。
    • 配置路由和状态管理:将路由(router)和状态管理(store,如果使用Vuex的话)作为选项传递给Vue实例。
    • 渲染根组件:使用 render 函数渲染 App.vue 组件,这是你的应用的根组件。
    • 挂载到DOM:通过 $mount(‘#app’) 将Vue实例挂载到页面上ID为 app 的元素上。
  3. 路由和组件加载
    一旦Vue实例被挂载,Vue Router 就会接管路由的管理。当用户访问不同的URL时,Vue Router 会根据路由配置加载相应的组件。

    // router/index.js  
    import Vue from 'vue';  
    import Router from 'vue-router';  
    import Home from '@/components/Home.vue';  
    import About from '@/components/About.vue';  
    
    Vue.use(Router);  
    
    export default new Router({  
      routes: [  
       {  
          path: '/',  
         name: 'Home',  
          component: Home  
        },  
        {  
          path: '/about',  
          name: 'About',  
          component: About  
       }  
     ]  
    });
    
    • 定义路由:在路由配置文件中(如 router/index.js),你定义了路由规则,将URL路径映射到对应的组件。
    • 导航和组件渲染:当用户访问某个URL时,Vue Router 会根据路由规则找到对应的组件,并将其渲染到页面上。

网页访问
现在,你的Vue应用已经运行在本地开发服务器上,并且可以通过浏览器访问。

  • 访问开发服务器:打开浏览器,访问 http://localhost:8080(或你开发服务器运行的其他端口)。
  • 加载和渲染:浏览器加载HTML页面(通常是 index.html),然后Vue应用接管页面的渲染。Vue Router 会根据当前URL加载相应的组件,并将其渲染到页面上。

从项目启动到网页访问的过程涉及多个步骤和组件的交互,包括:

  1. 运行 npm run serve 启动开发服务器。
  2. webpack 编译和打包项目文件。
  3. 在 main.js 中创建Vue实例并挂载根组件。
  4. Vue Router 管理路由和组件加载。
  5. 浏览器访问开发服务器并加载Vue应用。

这些步骤共同构成了Vue项目从启动到网页访问的完整流程。

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

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

相关文章

【专题】计算机网络之物理层

计算机网络体系结构&#xff1a; 1. 物理层的基本概念 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流&#xff0c;而不是指具体的传输媒体。 作用&#xff1a;尽可能屏蔽掉不同传输媒体和通信手段的差异。 用于物理层的协议也常称为物理层规程 (procedu…

js.矩阵置零

链接&#xff1a;73. 矩阵置零 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],…

如何使用Java语言调用API数据

在当今的数据驱动世界中&#xff0c;API&#xff08;应用程序编程接口&#xff09;成为了连接不同服务和数据源的桥梁。无论是社交媒体数据、金融市场信息还是地理位置服务&#xff0c;API都能提供一种便捷的方式来获取这些数据。Java&#xff0c;作为最受欢迎的编程语言之一&a…

无mac电脑在苹果开发者上传构建版本

我们登录苹果开发者网站的后台&#xff0c;进入app store后&#xff0c;发现上架的页面需要上传一个构建版本。 这个构建版本的意思就是我们的应用二进制文件&#xff0c;是上架最重要的文件。但是在苹果开发者后台是无法直接上传这个文件的&#xff0c;它提示我们可以使用xco…

VSCODE c++不能自动补全的问题

最近安装了vscode&#xff0c;配置了C/C扩展&#xff0c;也按照网上说的配置了头文件路径 我发现有部分头文件是没办法解析的&#xff0c;只要包含这些头文件中的一个或者多个&#xff0c;就没有代码高亮和代码自动补全了&#xff0c;确定路径配置是没问题的&#xff0c;因为鼠…

Caffeine Cache解析(一):接口设计与TinyLFU

Caffeine is a high performance Java caching library providing a near optimal hit rate. 自动加载value, 支持异步加载基于size的eviction&#xff1a;frequency and recency基于时间的过期策略&#xff1a;last access or last write异步更新valuekey支持weak referenceva…

RK3588部署及其RKNPU工具链使用学习

文章目录 RKNPU 推理框架推理软件框架RKNPU 硬件层&#xff1a;RKNPU 驱动层&#xff1a;RKNPU 应用层 RKNN 模型RKNN 的工具链介绍RKNN 软件栈整体介绍RKNN-Toolkit2 功能介绍RKNPU2-SDK总结 开发环境搭建PC 端采用 虚拟机上的 Ubunt20.04 系统安装 anconda通过 conda 创建虚拟…

机器学习“捷径”:自动特征工程全面解析

引言 在机器学习项目中&#xff0c;特征工程是影响模型性能的关键步骤。它通过从原始数据中提取出更有用的特征&#xff0c;帮助模型更好地捕捉数据中的模式。然而&#xff0c;传统的特征工程过程往往需要大量的领域知识和实验调整&#xff0c;是一项耗时费力的工作。 近年来…

关于modbus与HMI车载侧屏通信的错误机制处理

目录 1.关于6个人机交互功能按钮逻辑图设计 2.错误处理机制 1.关于6个人机交互功能按钮逻辑图设计 初次的设计想法是按钮亮表示大家能按&#xff0c;但要是想在按一次&#xff0c;发送有效数据&#xff0c;就得先按亮&#xff0c;在按灭。这里以上料区为例&#xff0c;其它区…

Midjourney中文版:创意无界,绘梦成真

在数字艺术的浩瀚宇宙中&#xff0c;Midjourney中文版如同一颗璀璨的新星&#xff0c;以其独特的魅力和无限可能&#xff0c;引领着每一位创作者探索创意的无限边界。作为专为国内用户打造的AI绘画工具&#xff0c;Midjourney中文版不仅继承了原版的核心优势&#xff0c;更在本…

基于cloudreve(Docker应用)搭建网盘服务,用于目录的分享和在线预览。

文章目录 I 基于cloudreve(Docker应用)搭建网盘服务安装主要功能设置角色最大容量II 知识扩展:网盘类的文件预览需求背景: iOS可以直接预览PDF等常见格式文件,但是Android浏览器需要先下载文件,才能查看文件内容,因此需要搭建支持目录的分享和在线预览的MinIO文件服务提供…

【Redis】Zset类型常用命令

文章目录 一. Zset有序集合简介.二. 添加元素相关命令.2.1 向有序集合中添加元素(zadd) 三. 查询元素相关操作.3.1 查询有序集合中的元素个数( zcard zcount)3.2 查询指定区间内的元素(zrange zrevrange zrangebyscore)3.3 查询有序集合中指定成员的排名(zrank zrevrank )3.4 查…

AI大模型学习路线路径,巨详细!

大模型技术已经成为推动人工智能发展的关键力量。无论你是初学者还是有经验的开发者&#xff0c;想要掌握大模型应用&#xff0c;都需要遵循一定的学习路线。 从核心技术解析到模型微调与私有化部署&#xff0c;逐步深入大模型应用的世界。 这份学习路线图详细的介绍了那年每…

规划控制复现:Apollo LQR横向控制(算法原理推导与流程)

本文在前文已经搭建好的规划控制验证平台中进行LQR算法的复现&#xff1a; 1.车辆动力学建模 汽车轨迹跟踪误差模型示意图如下&#xff1a; 为车辆横向速度,为车辆纵向速度;和 分别为质心到前、 后轴的距离 ; 为车辆的横 摆角 ; 和 分别为车辆前 、 后轮的侧偏角。并设车辆…

【C++】哈希表的模拟实现

目录 一、闭散列&#xff08;开放定址定法&#xff09; 1、哈希表的结构&#xff1a; 2、哈希表的插入&#xff1a; 3、哈希表的查找&#xff1a; 4、哈希表的删除&#xff1a; 二、开散列&#xff08;哈希桶&#xff09; 1、哈希表的结构&#xff1a; 2、构造与析构&a…

若依前后分离版集成积木报表进行token传递

若依分离板集成积木报表就不说了需要的请移步&#xff1a;若依前后分离版集成积木报表-CSDN博客 考虑到前端摸鱼不干活,所以一般都是前后端都干&#xff0c;我这里前后端都搞上&#xff0c;你们直接抄&#xff0c;抄完接着去摸鱼&#xff0c;代码不美观&#xff0c;轻喷 一、…

【JavaEE】【多线程】synchronized和死锁

目录 一、synchronized详解1.1 互斥1.2 可重入 二、死锁2.1 死锁成因2.2 避免死锁 一、synchronized详解 1.1 互斥 synchronized 会起到互斥效果, 某个线程执行到某个对象的 synchronized 中时, 其他线程如果也执行到 同一个对象 synchronized 就会阻塞等待. 语法&#xff1…

AI时代程序员何去何从?提升自我还是被淘汰出局!

AI 在编程界的使用变得越来越普遍了。随着 ChatGPT 的横空出世&#xff0c;各种大语言模型如雨后春笋不断出现。国外如谷歌 Bard、Anthropic 的 Claude&#xff0c;国内如百度文心一言、阿里通义千问、讯飞星火认知大模型、昆仑万维天工大模型等。 想想看&#xff0c;以前得花好…

支持国密算法的数字证书-国密SSL证书详解

在互联网中&#xff0c;数字证书作为标志通讯各方身份信息的数字认证而存在&#xff0c;常见的数字证书大都采用国际算法&#xff0c;比如RSA算法、ECC算法、SHA2算法等。随着我国加强网络安全技术自主可控的大趋势&#xff0c;也出现了支持国密算法的数字证书-国密SSL证书。那…

【网络安全】缓存欺骗问题之查看个人资料接口

未经许可,不得转载。 文章目录 正文正文 目标网站 target.com,查看个人资料页面时,API 端点为/get_user,完整的 URL 是 https://target.com/web-api/v1/get_user?timestamp=123456(其中 timestamp 是一个易受攻击的参数)。 我注意到响应中有一个 cf-cache-status= MISS…