Vue项目创建和nodejs使用

news2024/11/30 8:50:09

Vue项目创建和nodejs使用

  • 一、环境准备
    • 1.1.安装 node.js【下载历史版本node-v14.21.3-x64】
    • 1.2.安装
    • 1.3.检查是否安装成功:
    • 1.4.在Node下新建两个文件夹 node_global和node_cache并设置权限
    • 1.5.配置npm在安装全局模块时的路径和缓存cache的路径
    • 1.6.配置系统变量:Node\node_global\node_modules
    • 1.7.编辑用户变量里的Path:Node\node_global
    • 1.8.安装淘宝镜像
    • 1.9.查看当前的npm镜像设置:
    • 1.10. 通过.npmrc文件更改源
    • 1.11.错误提示淘宝镜像过期
    • 1.12.express 模块进行测试
    • 1.13.全局安装webpack
    • 1.14.webpack : 无法加载文件 D:\Program Files\nodejs\node_global\webpack.ps1,因为在此系统上禁止运行脚本
    • 1.15.全局安装Vue-cli
  • 二、vite对比webpack
    • 2.1.Webpack
    • 2.2.Vite
    • 2.3.使用webpack打包模式
    • 2.4.vite打包模式
  • 三、创建Vue项目
    • 3.1.方法一【UI界面创建】
    • 3.2.方法二:vue init webpack 项目名【vue-cli2.x的初始化方式】
    • 3.3.方法三:vue create 项目名【vue-cli3.x的初始化方式】
    • 3.4.方法四:npm init vue@latest
  • 四、Vite-下一代的前端工具链
    • 4.1.使用vite构建项目
    • 4.2.构建一个 Vite + Vue 项目
  • 五、nvm 安装与使用
  • 六、【Vue2】项目
    • 6.1.axios模块
      • 6.1.1.安装axios模块
      • 6.1.2.在入口文件main.js中配置axios
      • 6.1.3.axios使用案例
      • 6.1.4.vue-axios使用案例
    • 6.2.关闭Vue的生产提示
    • 6.3.vue项目中无router文件夹,vue安装路由
    • 6.4.引入Vue Router路由Vue.js【v.3x】
    • 6.5.引入ElementUI组件库【Vue2 版本】
    • 6.6.main.js完整版
    • 6.7.页面创建UploadImg.vue
    • 6.8.修改App.vue
    • 6.9.创建路由配置router/index.js
    • 6.10.页面效果
  • 七、【Vue3】项目
    • 6.1.axios模块
      • 6.1.1.安装axios模块
      • 6.1.2.在入口文件main.js中配置axios
    • 6.2.关闭Vue的生产提示
    • 6.3.vue项目中无router文件夹,vue安装路由
    • 6.4.引入Vue Router路由Vue.js【v.4x】
    • 6.5.引入Element Plus组件库【Vue3 版本】
    • 6.6.main.js完整版
    • 6.7.页面创建UploadImg.vue
    • 6.8.修改App.vue
    • 6.9.创建路由配置router/index.js
    • 6.10.页面效果
  • endl

一、环境准备

1.1.安装 node.js【下载历史版本node-v14.21.3-x64】

下载地址:https://nodejs.org/en/

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

在这里插入图片描述

1.2.安装

在这里插入图片描述

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

1.3.检查是否安装成功:

npm -v
node -v

在这里插入图片描述

1.4.在Node下新建两个文件夹 node_global和node_cache并设置权限

在这里插入图片描述

1.5.配置npm在安装全局模块时的路径和缓存cache的路径

默认会将模块安装在C:\Users\用户名\AppData\Roaming路径下的npm和npm_cache中且占用C盘空间
在这里插入图片描述

在node.js安装目录Node下新建两个文件夹 node_global和node_cache

npm config set prefix "D:\DeveloperTools\Node\node_global"

npm config set cache "D:\DeveloperTools\Node\node_cache"

npm config list

在这里插入图片描述

1.6.配置系统变量:Node\node_global\node_modules

NODE_PATH

D:\DeveloperTools\Node\node_global\node_modules

在path里面加 %NODE_PATH%

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

1.7.编辑用户变量里的Path:Node\node_global

编辑用户变量里的Path,将相应npm的路径改为:

D:\DeveloperTools\Node\node_global

在这里插入图片描述

1.8.安装淘宝镜像

阿里巴巴镜像站官网:http://mirrors.aliyun.com/
官网:http://www.npmmirror.com/

使用管理员身份运行命令

# 国外npm本身
npm config set registry https://registry.npmjs.org/

# 淘宝镜像
npm config set registry https://registry.npmmirror.com

在这里插入图片描述

在这里插入图片描述

1.9.查看当前的npm镜像设置:

命令查看配置

npm root -g

npm config list

npm config get prefix

在这里插入图片描述

1.10. 通过.npmrc文件更改源

可以看到C盘用户目录下的.npmrc文件

.npmrc优先级高于环境变量

在项目的根目录或用户的主目录中,创建或编辑.npmrc文件
在这里插入图片描述
在这里插入图片描述

1.11.错误提示淘宝镜像过期

npm 淘宝镜像已经从 registry.npm.taobao.org 切换到了 registry.npmmirror.com

# 原来淘宝镜像
npm config set registry https://registry.npm.taobao.org

# 删除
npm config delete registry

# 清空缓存
npm cache clean --force

# 配置列表
npm config list

在这里插入图片描述

在这里插入图片描述

1.12.express 模块进行测试

//进入安装目录
cd D:\DeveloperTools\Node\node_global\node_modules

//-g代表全局安装
npm install express -g

npm uninstall express -g

在这里插入图片描述

1.13.全局安装webpack

使用管理员身份运行命令

npm install webpack -g 

npm install webpack-cli -g

# 查看安装webpack的版本号
npm webpack -v
npm webpack-cli -v

在这里插入图片描述

1.14.webpack : 无法加载文件 D:\Program Files\nodejs\node_global\webpack.ps1,因为在此系统上禁止运行脚本

解决方案:

以管理员身份运行
执行:get-ExecutionPolicy,显示Restricted,表示状态是禁止的
执行:set-ExecutionPolicy RemoteSigned
这时再执行get-ExecutionPolicy,就显示RemoteSigned
get-ExecutionPolicy

#set-ExecutionPolicy Restricted
set-ExecutionPolicy RemoteSigned

get-ExecutionPolicy

在这里插入图片描述

1.15.全局安装Vue-cli

#vue-cli3 可视化,使用vue-cli3.x初始化项目安装这个
npm install -g @vue/cli

#vue-lcli2,使用vue-cli2.x初始化项目安装这个
npm install -g vue-cli

vue --version

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

二、vite对比webpack

2.1.Webpack

将所有的模块提前编译、打包进 bundle 中,不管这个模块是否被用到,随着项目越来越大,打包启动的速度自然越来越慢。

2.2.Vite

瞬间开启一个服务,并不会先编译所有文件,当浏览器用到某个文件时,Vite 服务会收到请求然后编译后响应到客户端。

2.3.使用webpack打包模式

在这里插入图片描述

2.4.vite打包模式

在这里插入图片描述

三、创建Vue项目

vue官网:https://cn.vuejs.org/
在这里插入图片描述

3.1.方法一【UI界面创建】

vue ui

http://localhost:8000/project/select

在这里插入图片描述

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

3.2.方法二:vue init webpack 项目名【vue-cli2.x的初始化方式】

#创建项目
vue init webpack test-vue

#进入目录
cd teat-vue

#初始化
npm install

#运行
npm run dev

在这里插入图片描述

#vue 3.0 使用 vue-cli 2.0创建webpack项目时出现
#创建命令
vue init webpack test-vue2

Command vue init requires a global addon to be installed.
Please run npm i -g @vue/cli-init and try again.

操作提示Please run npm i -g @vue/cli-init
执行npm i -g @vue/cli-init之后,再次执行创建命令即可
注意:项目名不要出现大写字母

在这里插入图片描述

3.3.方法三:vue create 项目名【vue-cli3.x的初始化方式】

#创建项目
vue create test-vue3

#进入目录
cd teat-vue3

#初始化
npm install

#运行
npm run serve

在这里插入图片描述

3.4.方法四:npm init vue@latest

npm init vue@latest

npm init vue@latest 创建的 vue3 项目是基于 Vite 打包的
npm init vue@latest 安装并执行 create-vue,它是 Vue 官方的项目脚手架工具

在这里插入图片描述

四、Vite-下一代的前端工具链

Vite官网:https://www.vitejs.net/guide/

Vite 需要 Node.js 版本 >= 12.0.0

4.1.使用vite构建项目

npm create vite@latest

npm init vite@latest

在这里插入图片描述

4.2.构建一个 Vite + Vue 项目

# npm 6.x
npm create vite@latest my-vue-app --template vue
npm init vite@latest my-vue-app --template vue

# npm 7+, 需要额外的双横线:
npm create vite@latest my-vue-app -- --template vue
npm init vite@latest my-vue-app -- --template vue

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

五、nvm 安装与使用

github官网下载:https://github.com/coreybutler/nvm-windows/releases
在这里插入图片描述

六、【Vue2】项目

6.1.axios模块

6.1.1.安装axios模块

vue-axios|axios中文网:http://www.axios-js.com/zh-cn/docs/vue-axios.html
axios官网:https://www.axios-http.cn/docs/intro

npm install --save axios vue-axios

//报错时使用--legacy-peer-deps
npm install --save axios vue-axios --legacy-peer-deps

6.1.2.在入口文件main.js中配置axios

#在入口文件main.js中配置
//引入vue
import Vue from 'vue'
//引入axios
import axios from 'axios'
//引入VueAxios
//安装VueAxios模块后,不需要在每个组件中单独导入axios,只需将axios请求改为this.axios
import VueAxios from 'vue-axios'
//把axios挂载到vue上
Vue.prototype.$axios = axios;

//使用Vue.use来注册安装插件
Vue.use(VueAxios, axios)

new Vue({
  el:'#app',
  render: h => h(App),
})
按照这个顺序分别引入这三个文件: vue, axios and vue-axios

6.1.3.axios使用案例

# 在入口文件main.js中配置
//引入Vue
import Vue from 'vue'
//引入axios
import axios from 'axios'
//把axios挂载到vue上
Vue.prototype.$axios = axios

new Vue({
  el:'#app',
  render: h => h(App),
})
# 第三步:使用案例
this.$axios.get('/user?id=888').then((response) => {
  console.log(response.data)
}).catch( (error) => {
    console.log(error);
});

6.1.4.vue-axios使用案例

#在入口文件main.js中配置
//引入Vue
import Vue from 'vue'
//引入axios
import axios from 'axios'
//引入VueAxios
import VueAxios from 'vue-axios'

//使用Vue.use来注册安装插件
Vue.use(VueAxios, axios)

new Vue({
  el:'#app',
  render: h => h(App),
})
#第三步:使用方式有如下三种
#方式1
Vue.axios.get(api).then((response) => {
  console.log(response.data)
})
#方式2
this.axios.get(api).then((response) => {
  console.log(response.data)
})
#方式3
this.$http.get(api).then((response) => {
  console.log(response.data)
})

6.2.关闭Vue的生产提示

#在入口文件main.js中配置
//关闭Vue的生产提示
Vue.config.productionTip = false

6.3.vue项目中无router文件夹,vue安装路由

新建一个router文件夹,在文件夹下新建一个index.js文件

在这里插入图片描述

6.4.引入Vue Router路由Vue.js【v.3x】

Vue2使用v.3x
Vue Router官网【v3.x】:https://v3.router.vuejs.org/zh/
更新记录【3.x】https://github.com/vuejs/vue-router/releases

//报错时使用--legacy-peer-deps
//vue-router@3x 适用于 vue2
npm install vue-router@3

//指定版本号
npm install vue-router@3.5.2 --save

在这里插入图片描述

#在入口文件main.js中配置
//引入VueRouter
import VueRouter from 'vue-router'

//使用Vue.use来注册安装插件
Vue.use(VueRouter)

//新建一个router文件夹,在文件夹下新建一个index.js文件
//引入路由器
import router from './router/index'

// 创建和挂载根实例
new Vue({
  router, //将路由器注入到new Vue实例中,建立关联
  render: h => h(App),
}).$mount('#app');

6.5.引入ElementUI组件库【Vue2 版本】

ElementUI组件库官网:https://element.eleme.cn/#/zh-CN

npm i element-ui -S
//完整引入
//引入ElementUI组件库
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

//使用ElementUI组件库
Vue.use(ElementUI)

6.6.main.js完整版

在这里插入图片描述

import App from './App.vue'
//引入Vue
import Vue from 'vue'
//引入axios
import axios from 'axios'
//引入VueAxios
//安装VueAxios模块后,不需要在每个组件中单独导入axios,只需将axios请求改为this.axios
import VueAxios from 'vue-axios'
//引入VueRouter
import VueRouter from 'vue-router'
//完整引入
//引入ElementUI组件库
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
//新建一个router文件夹,在文件夹下新建一个index.js文件
//引入路由器
import router from './router/index'

//把axios挂载到vue上
Vue.prototype.$axios = axios;
//使用Vue.use来注册安装插件
Vue.use(VueRouter)
Vue.use(router)
Vue.use(VueAxios, axios)
//使用ElementUI组件库
Vue.use(ElementUI)
//关闭Vue的生产提示
Vue.config.productionTip = false

// 创建和挂载根实例
new Vue({
  router, //将路由器注入到new Vue实例中,建立关联
  render: h => h(App),
}).$mount('#app');

6.7.页面创建UploadImg.vue

<template>
  <div>
    <el-form>
      <el-form-item label="上传图片">
        <el-upload
          list-type="picture-card"
          :multiple="false"
          :action="uploadUrl"
          :limit="1"
          :on-success="onUploadSuccessIdCard"
        >
          <i class="el-icon-plus"></i>
        </el-upload>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  name: "UploadImg",
  data() {
    return {
      dialogImageUrl: "",
      file_id: "",
      dialogVisible: false,
      uploadUrl: "http://localhost:22100/filesystem/uploadFile", //文件上传地址
      datas: {},
    };
  },
  methods: {
    onUploadSuccessIdCard(response) {
      this.file_id = response.data.fileId;
      this.datas = response.data;
      this.dialogImageUrl = "http://192.168.229.141/" + response.data.filePath;
    },
  },
};
</script>

<style scoped>
</style>

6.8.修改App.vue

<template>
  <div id="app">
    <HelloWorld />
    <!-- 导航链接 -->
    <!-- 路由内容展示 -->
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: "App",
};
</script>

<style>
</style>

6.9.创建路由配置router/index.js

//在路由文件router/index.js中配置
// 该文件专门用于创建整个应用的路由器
import VueRouter from "vue-router";

//引入组件
import UploadImg from '@/components/UploadImg'//上传页

//创建路由
const routes = [
  //定义路由
  {
    path: '/',
    name: 'UploadImg',
    component: UploadImg
  },
]

//创建并暴露一个路由器
const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

export default router

6.10.页面效果

npm rn serve

在这里插入图片描述

七、【Vue3】项目

6.1.axios模块

6.1.1.安装axios模块

vue-axios|axios中文网:http://www.axios-js.com/zh-cn/docs/vue-axios.html
axios官网:https://www.axios-http.cn/docs/intro

npm install --save axios vue-axios

//报错时使用--legacy-peer-deps
npm install --save axios vue-axios --legacy-peer-deps

6.1.2.在入口文件main.js中配置axios

#在入口文件main.js中配置
import { createApp } from 'vue'
import App from './App.vue'

//引入axios
import axios from 'axios'
//引入VueAxios
//安装VueAxios模块后,不需要在每个组件中单独导入axios,只需将axios请求改为this.axios
import VueAxios from 'vue-axios'

const app = createApp(App);

//使用Vue.use来注册安装插件
app.use(VueAxios, axios)

app.mount('#app')

//createApp(App).mount('#app')
按照这个顺序分别引入这三个文件: vue, axios and vue-axios

6.2.关闭Vue的生产提示

#在入口文件main.js中配置
//关闭Vue的生产提示
app.config.productionTip = false

6.3.vue项目中无router文件夹,vue安装路由

新建一个router文件夹,在文件夹下新建一个index.js文件

在这里插入图片描述

6.4.引入Vue Router路由Vue.js【v.4x】

Vue3使用v.4x
Vue Router官网【v4.x】:https://router.vuejs.org/zh/
更新记录【4.x】https://github.com/vuejs/router/releases

//vue-router4x 适用于 vue3
npm install vue-router@4

//指定版本号
npm install vue-router@4.2.5 --save
import { createApp } from 'vue'
import App from './App.vue'

//引入路由器
import router from './router/index'

const app = createApp(App);

//使用Vue.use来注册安装插件
app.use(router)

app.mount('#app')

在这里插入图片描述

6.5.引入Element Plus组件库【Vue3 版本】

Element Plus组件库官网:https://element-plus.gitee.io/zh-CN/

npm install element-plus --save
// main.ts
import { createApp } from 'vue'
//引入Element Plus组件库
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'

const app = createApp(App)

app.use(ElementPlus)
app.mount('#app')

6.6.main.js完整版

import { createApp } from 'vue'
import App from './App.vue'

//引入axios
import axios from 'axios'
//引入VueAxios
//安装VueAxios模块后,不需要在每个组件中单独导入axios,只需将axios请求改为this.axios
import VueAxios from 'vue-axios'
//新建一个router文件夹,在文件夹下新建一个index.js文件
//引入路由器
import router from './router/index'
//引入Element Plus组件库
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'

const app = createApp(App);
//关闭Vue的生产提示
app.config.productionTip = false

//使用Vue.use来注册安装插件
app.use(VueAxios, axios)
app.use(router)
app.use(ElementPlus)

app.mount('#app')

6.7.页面创建UploadImg.vue

<template>
  <div>
    <el-form>
      <el-form-item label="上传图片">
        <el-upload
          list-type="picture-card"
          :multiple="false"
          :action="uploadUrl"
          :limit="1"
          :on-success="onUploadSuccessIdCard"
        >
          <i class="el-icon-plus"></i>
        </el-upload>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  name: "UploadImg",
  data() {
    return {
      dialogImageUrl: "",
      file_id: "",
      dialogVisible: false,
      uploadUrl: "http://localhost:22100/filesystem/uploadFile", //文件上传地址
      datas: {},
    };
  },
  methods: {
    onUploadSuccessIdCard(response) {
      this.file_id = response.data.fileId;
      this.datas = response.data;
      this.dialogImageUrl = "http://192.168.229.141/" + response.data.filePath;
    },
  },
};
</script>

<style scoped>
</style>

6.8.修改App.vue

<template>
  <div id="app">
    <HelloWorld />
    <!-- 导航链接 -->
    <!-- 路由内容展示 -->
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: "App",
};
</script>

<style>
</style>

6.9.创建路由配置router/index.js

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

const routerHistory = createWebHistory(process.env.BASE_URL)

import UploadImg from '@/components/UploadImg'
// 定义路由
const routes = [
  {
    path: '/',
    name: 'UploadImg',
    component: UploadImg
  },
]

// 创建路由器
const router = createRouter({
  history: routerHistory,
  routes: routes
})


export default router;

6.10.页面效果

npm rn serve

在这里插入图片描述

endl

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

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

相关文章

红队笔记Day2 -->上线不出网机器

今天就来讲一下在企业攻防中如何上线不出网的机器&#xff01;&#xff01; 1.基本网络拓扑 基本的网络拓扑就是这样 以下是对应得的P信息&#xff0c;其中的52网段充当一个内网的网段&#xff0c;而111充当公网网段 先ping一下&#xff0c;确保外网ping不通内网&#xff0c;内…

162基于matlab的多尺度和谱峭度算法对振动信号进行降噪处理

基于matlab的多尺度和谱峭度算法对振动信号进行降噪处理&#xff0c;选择信号峭度最大的频段进行滤波&#xff0c;输出多尺度谱峭度及降噪结果。程序已调通&#xff0c;可直接运行。 162 matlab 信号处理 多尺度谱峭度 (xiaohongshu.com)

Hive的小文件问题

目录 一、小文件产生的原因 二、小文件的危害 三、小文件的解决方案 3.1 小文件的预防 3.1.1 减少Map数量 3.1.2 减少Reduce的数量 3.2 已存在的小文件合并 3.2.1 方式一&#xff1a;insert overwrite (推荐) 3.2.2 方式二&#xff1a;concatenate 3.2.3 方式三&#xff…

搜索专项---最短路模型

文章目录 迷宫问题武士风度的牛抓住那头牛 一、迷宫问题OJ链接 本题思路:只需要记录各个点是有哪个点走过来的&#xff0c;就能递推得出路径。记录前驱假设从 1,1 这个点向下走到了2, 1&#xff0c;则将2,1这个点的前驱记为1,1。这样&#xff0c;将整张地图 bfs 后&#xff0c…

vue 向某个网址 传递数据

1. 需求 现在有一个网站需要 配置上另一个网站的东西 类似这样的东西吧 就是我需要再一个网站上 右边或者其他地方 放另一个页面的地址 这个地址需要给我传递东西 或我这个网站给其他的网站传递token了 id等 2.解决 window.parent.postMessage({ token: loginRes.token, id:…

阿里云服务器公网带宽收费价格表_2024更新报价

阿里云服务器公网带宽怎么收费&#xff1f;北京地域服务器按固定带宽计费一个月23元/M&#xff0c;按使用流量计费0.8元/GB&#xff0c;云服务器地域不同实际带宽价格也不同&#xff0c;阿里云服务器网aliyunfuwuqi.com分享不同带宽计费模式下带宽收费价格表&#xff1a; 公网…

软件测试如何自我提升

当一个软件测试工程师刚刚进入行业一到三年的时间&#xff0c;他们通常需要掌握一些基本技能和知识&#xff0c;并且需要学习一些新的技术和工具&#xff0c;以便更好地完成自己的测试工作。以下是一些建议&#xff0c;帮助测试工程师在这个阶段提升自己的技能。 掌握基本的测…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 2月14日,星期三

每天一分钟&#xff0c;知晓天下事&#xff01; 2024年2月14日 星期三 农历正月初五 1、 第十四届全国冬季运动会将于17日开幕&#xff0c;部分赛事今天起陆续开赛。 2、 2024年购房政策将进一步宽松&#xff0c;专家称今年买房性价比更高。 3、 春节档票房突破45亿元&#…

LeetCode、901. 股票价格跨度【中等,单调栈】

文章目录 前言LeetCode、901. 股票价格跨度【中等&#xff0c;单调栈】题目链接及分类思路思路1&#xff1a;暴力思路2&#xff1a;单调栈写法优化&#xff1a;单调栈简化写法(数组替代栈集合) 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、…

【王道数据结构】【chapter5树与二叉树】【P158t3】

编写后序遍历二叉树的非递归算法 #include <iostream> #include <stack> typedef struct treenode{char data;struct treenode *left;struct treenode *right; }treenode,*ptreenode;ptreenode buytreenode(char x) {ptreenode n(ptreenode) malloc(sizeof (treeno…

Amber-Leedcode-Java - 代码随想录打卡第38 - 39天-动态规划汇总

509. 斐波那契数 较为简单 746. 使用最小花费爬楼梯 62. 不同路径 一开始写的时候被吓到了&#xff0c;但是发现听完一半之后再写还是比较容易的 对于我而言主要是找到逻辑&#xff0c; class Solution {public int uniquePaths(int m, int n) {if (m < 1 || n <1){r…

蓝桥杯嵌入式第10届真题(完成) STM32G431

蓝桥杯嵌入式第10届真题(完成) STM32G431 题目 main.c /* USER CODE BEGIN Header */ /********************************************************************************* file : main.c* brief : Main program body********************************…

linux信号机制[一]

目录 信号量 时序问题 原子性 什么是信号 信号如何产生 引入 信号的处理方法 常见信号 如何理解组合键变成信号呢&#xff1f; 如何理解信号被进程保存以及信号发送的本质&#xff1f; 为什么要有信号 信号怎么用&#xff1f; 样例代码 core文件有什么用呢&#…

python系统学习Day1

section1 python introduction 文中tips只做拓展&#xff0c;可跳过。 PartOne introduction 首先要对于python这门语言有一个宏观的认识&#xff0c;包括特点和应用场景。 特点分析&#xff1a; 优势 提供了完善的基础代码库&#xff0c;许多功能不必从零编写简单优雅 劣势 运…

Linux环境下配置HTTP代理服务器教程

大家好&#xff0c;我是你们可爱的Linux小助手&#xff01;今天&#xff0c;我将带你们一起探索如何在Linux环境下配置一个HTTP代理服务器。请注意&#xff0c;这不是一次火箭科学的实验&#xff0c;而是一次简单而有趣的冒险。 首先&#xff0c;我们需要明确什么是HTTP代理服…

使用MICE进行缺失值的填充处理

在我们进行机器学习时&#xff0c;处理缺失数据是非常重要的&#xff0c;因为缺失数据可能会导致分析结果不准确&#xff0c;严重时甚至可能产生偏差。处理缺失数据是保证数据分析准确性和可靠性的重要步骤&#xff0c;有助于确保分析结果的可信度和可解释性。 在本文中&#…

【Linux学习】线程互斥与同步

目录 二十.线程互斥 20.1 什么是线程互斥&#xff1f; 20.2 为什么需要线程互斥? 20.3 互斥锁mutex 20.4 互斥量的接口 20.4.1 互斥量初始 20.4.2 互斥量销毁 20.4.3 互斥量加锁 20.4.4 互斥量解锁 20.4.5 互斥量的基本原理 20.4.6 带上互斥锁后的抢票程序 20.5 死锁问题 死锁…

怎么使用ChatGPT提高工作效率?

怎么使用ChatGPT提高工作效率&#xff0c;这是一个有趣的话题。 相信不同的人有不同的观点&#xff0c;大家的知识背景和从事的工作都不完全相同&#xff0c;所以最终ChatGPT能起到的作用也不一样。 在编程过程中&#xff0c;如果我们要找一个库&#xff0c;我们最先做的肯定…

python3 获取某个文件夹所有的pdf文件表格提取表格并一起合并到excel文件

下面是一个完整的示例&#xff0c;其中包括了merge_tables_to_excel函数的定义&#xff0c;并且假设该函数的功能是从每个PDF文件中提取第一个表格并将其合并到一个Excel文件中&#xff1a; import os from pathlib import Path import pandas as pd import pdfplumber …

GEE重投影——NICFI数据集重投影到WGS84坐标

简介 重投影 遥感影像的重投影是将一幅影像从一个地理坐标系统转换到另一个地理坐标系统的过程。在遥感应用中,重投影非常重要,因为不同的遥感影像可能来自于不同的遥感传感器或不同的地理坐标系统,而在进行数据分析和集成时,需要保证所有影像在同一地理坐标系统下。 重…