Vue基础

目录

-Vue基础-

1、插值表达式 {{}}

2、Vue核心特性:响应式

3、开发者工具Vue Devtools(极简插件下载)

4、Vue指令

v-text

v-html

v-bind

v-on

v-if

v-show

v-for

v-model

5、Vue指令修饰符

.stop

.prevent

.capture

.self

.once

.enter、.tab、.delete、.esc 等

.ctrl、.alt、.shift、.meta

.lazy

.number

.trim

6、Vue实例属性

1. data

2.compute计算属性

3.watch监听器

4.created、mounted 等生命周期钩子

7、Vue的生命周期

8、工程化开发与脚手架 Vue CLI

两种开发模式

脚手架 Vue CLI

项目目录介绍

 9、组件化开发与根组件

10、VueRouter的使用

11、VueX的使用


概念:Vue 是一款用于构建用户界面的 JavaScript 框架。

快速上手:

-创建一个Vue应用-

前提条件:

  • 已安装 18.3 或更高版本的 Node.js

方法1:使用npm指令构建

npm create vue@latest
✔ Project name: … <your-project-name>
✔ Add TypeScript? … No / Yes
✔ Add JSX Support? … No / Yes
✔ Add Vue Router for Single Page Application development? … No / Yes
✔ Add Pinia for state management? … No / Yes
✔ Add Vitest for Unit testing? … No / Yes
✔ Add an End-to-End Testing Solution? … No / Cypress / Nightwatch / Playwright
✔ Add ESLint for code quality? … No / Yes
✔ Add Prettier for code formatting? … No / Yes
✔ Add Vue DevTools 7 extension for debugging? (experimental) … No / YesScaffolding project in ./<your-project-name>...
Done.

安装完后,安装依赖并启动开发服务器:

cd <your-project-name>
npm install
npm run dev

当你准备将应用发布到生产环境时,请运行:

npm run build

方法二:通过 CDN 使用 Vue

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
//1、引入Vue的CDN
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
//2、创建容器
<div id="app">{{ message }}</div>
//3、创建Vue实例并指定配置项
<script>const { createApp, ref } = VuecreateApp({setup() {const message = ref('Hello vue!')return {message:'Hello,vue'}}}).mount('#app')
</script>

-Vue基础-

1、插值表达式 {{}}

作用:利用表达式进行插值并渲染到页面中(表达式是一个能被求值的代码)

注意事项:

  • 使用数据必须存在,比如使用了msg,必须在Vue实例的data中声明该表达式,比如:
<div id="cxk">Message: {{ msg }}</div>const app = new Vue({
el : '#cxk',
data: {msg: '我叫鸡太美'
}
  • 支持的是表达式,而条件语句if等无法在插值表达式中使用
  • 插值表达式不能够在标签中使用,比如<div title={{}}>  </div>
2、Vue核心特性:响应式

响应式:数据变化,视图自动更新

3、开发者工具Vue Devtools(极简插件下载)
4、Vue指令
v-text
  • 功能:更新元素的文本内容,会覆盖元素内原本的内容。
  • 示例
<div id="app"><p v-text="message"></p>
</div>
<script>new Vue({el: '#app',data: {message: 'Hello, Vue!'}})
</script>
v-html
  • 功能:更新元素的 innerHTML,会将绑定的值作为 HTML 代码进行渲染。
  • 示例
<div id="app"><div v-html="htmlContent"></div>
</div>
<script>new Vue({el: '#app',data: {htmlContent: '<h1>这是一个标题</h1>'}})
</script>
v-bind
  • 功能:用于动态绑定 HTML 属性,可简写为 :
  • 示例
<div id="app"><img :src="imageUrl" alt="示例图片">
</div>
<script>new Vue({el: '#app',data: {imageUrl: 'https://example.com/image.jpg'}})
</script>
v-on
  • 功能:用于绑定 DOM 事件,可简写为 @
  • 示例
<div id="app"><button @click="handleClick">点击我</button>
</div>
<script>new Vue({el: '#app',methods: {handleClick() {alert('按钮被点击了!')}}})
</script>
v-if
  • 功能:根据表达式的值来决定是否渲染元素。如果表达式的值为 false,元素会被完全从 DOM 中移除;为 true 时才会渲染。
  • 示例
<div id="app"><p v-if="isShow">这是一个条件渲染的段落</p>
</div>
<script>new Vue({el: '#app',data: {isShow: true}})
</script>
v-show
  • 功能:根据表达式的值来决定元素是否显示。如果表达式的值为 false,元素会通过设置 display: none 来隐藏,但元素仍然存在于 DOM 中。
  • 示例
<div id="app"><p v-show="isVisible">这是一个通过 v-show 控制显示的段落</p>
</div>
<script>new Vue({el: '#app',data: {isVisible: false}})
</script>
v-for
  • 功能:用于基于一个数组或对象来渲染列表。
  • 示例
// items是源数据的数组名,item是该数组的迭代项,key用于管理状态,通过追踪id标识重新排序现有元素
<div id="app"><ul><li v-for="item in items" :key="item.id">{{ item.name }}</li></ul>
</div>
<script>new Vue({el: '#app',data: {items: [{ id: 1, name: '苹果' },{ id: 2, name: '香蕉' },{ id: 3, name: '橙子' }]}})
</script>
v-model
  • 功能:用于在表单元素上创建双向数据绑定,即数据的变化会反映到视图上,视图的变化也会更新数据。
  • 示例
<div id="app"><input v-model="message" type="text"><p>你输入的内容是:{{ message }}</p>
</div>
<script>new Vue({el: '#app',data: {message: ''}})
</script>

案例:

图片切换案例

  • 创建一个div盒子,用于存放图片以及上下一页两个按钮,div使用id属性进行Vue实例绑定,img通过v-bing动态绑定图片路径src,两个button按钮绑定点击事件
  • 创建Vue实例,el绑定,data中,创建image[]数组用于存放图片路径,currentIndex设置初始值为0用于展示第一张图片,计算属性computed中,返回图片路径,methods方法中,创建两个方法,一个切换上一页,一个切换下一页
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue 图片切换</title><!-- 引入 Vue.js --><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head><body><div id="app"><!-- 显示当前图片 --><img :src="currentImage" alt="图片"><!-- 上一张图片按钮 --><button @click="prevImage">上一张</button><!-- 下一张图片按钮 --><button @click="nextImage">下一张</button></div><script>new Vue({el: '#app',data: {// 图片数组,存储图片的链接images: ['https://dummyimage.com/800x600/ff0000/ffffff','https://dummyimage.com/800x600/00ff00/000000','https://dummyimage.com/800x600/0000ff/ffffff'],// 当前显示的图片索引currentIndex: 0},computed: {// 计算属性,返回当前要显示的图片链接currentImage() {return this.images[this.currentIndex];}},methods: {// 切换到上一张图片的方法prevImage() {// 当索引为 0 时,是,切换到最后一张图片,不是,切换上一张图片this.currentIndex = this.currentIndex === 0 ? this.images.length - 1 : this.currentIndex - 1;},// 切换到下一张图片的方法nextImage() {// 当索引为最后一张图片的索引时,将索引设置为 0this.currentIndex = this.currentIndex === this.images.length - 1 ? 0 : this.currentIndex + 1;}}});</script>
</body></html>    

列表删除案例

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue 列表删除案例</title><!-- 引入 Vue.js --><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head><body><div id="app"><ul><!-- 使用 v-for 指令遍历 items 数组 --><li v-for="item in items" :key="item.id">{{ item.name }}<!-- 点击删除按钮时调用 deleteItem 方法,并传入当前项的 id --><button @click="deleteItem(item.id)">删除</button></li></ul></div><script>new Vue({el: '#app',data: {// 模拟列表数据items: [{ id: 1, name: '苹果' },{ id: 2, name: '香蕉' },{ id: 3, name: '橙子' }]},methods: {// 删除数据的方法deleteItem(id) {// 使用 filter 方法过滤掉 id 匹配的项this.items = this.items.filter(item => item.id !== id);}}});</script>
</body></html>    
5、Vue指令修饰符

事件修饰符

.stop
  • 功能:阻止事件冒泡。事件冒泡指的是当一个元素上的事件被触发时,该事件会依次向上级元素传播,比如在嵌套div中,一个点击触发多个点击,点击事件从内向外顺序依次执行,就叫时间冒泡,反之则叫事件捕获。使用 .stop 可以阻止这种传播。
  • 示例
<div @click="outerClick"><button @click.stop="innerClick">点击我</button>
</div>
.prevent
  • 功能:阻止事件的默认行为。例如,在表单提交时,默认会刷新页面,使用 .prevent 可以阻止这种默认行为。
  • 示例
<form @submit.prevent="submitForm"><input type="text" /><button type="submit">提交</button>
</form>
.capture
  • 功能:使用事件捕获模式。默认情况下,事件是从内向外冒泡的,而使用 .capture 会让事件从外向内捕获。
  • 示例
<div @click.capture="outerClick"><button @click="innerClick">点击我</button>
</div>
.self
  • 功能:只有当事件是从绑定元素本身触发时才会执行处理函数,而不是从它的子元素触发。
  • 示例
<div @click.self="divClick"><button @click="buttonClick">点击我</button>
</div>
.once
  • 功能:事件处理函数只执行一次,之后再触发该事件就不会再执行处理函数了。
  • 示例
<button @click.once="clickOnce">只点击一次</button>

按键修饰符

.enter.tab.delete.esc 等
  • 功能:分别监听回车键、制表键、删除键、Esc 键等特定按键的事件。
  • 示例
<input @keyup.enter="submitOnEnter" />

系统修饰符

.ctrl.alt.shift.meta
  • 功能:分别监听 Ctrl 键、Alt 键、Shift 键、Meta 键(在 Windows 上是 Windows 键,在 Mac 上是 Command 键)与其他按键或鼠标事件的组合。
  • 示例
<button @click.ctrl="ctrlClick">Ctrl + 点击</button>

表单修饰符

.lazy
  • 功能:将 v-model 的数据更新从默认的 input 事件改为 change 事件。也就是说,只有在输入框失去焦点或者按下回车键时,数据才会更新。
  • 示例
<input v-model.lazy="message" />
.number
  • 功能:将 v-model 绑定的输入值自动转换为数字类型。
  • 示例
<input v-model.number="age" type="number" />
.trim
  • 功能:自动过滤输入值首尾的空格。
  • 示例
<input v-model.trim="username" />
6、Vue实例属性
1. data
  • 功能data 是一个对象,用于存储 Vue 实例的数据。这些数据可以在模板中使用,并且当数据发生变化时,Vue 会自动更新与之绑定的 DOM 元素,实现数据的双向绑定。
  • 使用方式data 可以是一个对象,也可以是一个函数(在组件中必须是函数)。
2.compute计算属性

作用:能够根据已有的数据计算出新的值

基本语法:在 Vue 实例中,计算属性定义在 computed 选项里,其形式为一个对象,对象的每个属性都是一个函数。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue 计算属性示例</title><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head><body><div id="app"><!-- 使用计算属性 --><p>全名: {{ fullName }}</p></div><script>new Vue({el: '#app',data: {// 定义数据firstName: '张',lastName: '三'},computed: {// 定义计算属性fullName: function () {return this.firstName + ' ' + this.lastName;}}});</script>
</body></html>

compute计算属性与methods方法的区别:

compute用于对数据的处理求得结果,methods用于处理业务逻辑

3.watch监听器

在 Vue 里,watch 监听器的作用是监测数据的变化,当被监听的数据发生改变时,会执行特定的操作。

使用场景

异步操作:发送网络请求,请求数据资源,比如搜索框根据关键词变化发送请求

复杂数据处理:一个数据变化会影响多个数据变化或需要重新计算,比如计算商品总价

事例:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue Watch 示例</title><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head><body><div id="app"><input v-model="message" placeholder="输入内容"><p>当前输入: {{ message }}</p></div><script>new Vue({el: '#app',data: {message: ''},watch: {// 监听 message 属性的变化message(newValue, oldValue) {console.log(`新值: ${newValue}, 旧值: ${oldValue}`);}}});</script>
</body></html>
4.createdmounted 等生命周期钩子
  • 功能:生命周期钩子是一些特殊的方法,它们在 Vue 实例的不同生命周期阶段被自动调用。例如,created 钩子在实例已经创建完成之后被调用,mounted 钩子在挂载完成后被调用。
  • 使用方式:在 Vue 实例中直接定义这些钩子函数。
  • 示例
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue 生命周期钩子示例</title><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head><body><div id="app"><!-- 模板内容 --></div><script>new Vue({el: '#app',created() {console.log('实例已创建');},mounted() {console.log('实例已挂载');}});</script>
</body></html>

7、Vue的生命周期

Vue的生命周期分为四个阶段:创建,挂载,更新,销毁

创建(beforeCreate、created)

beforeCreate:此时 data 和 methods 等属性还未初始化,无法访问它们。通常用于在实例初始化开始时执行一些通用的初始化操作,比如添加全局的加载状态

created:可以访问 data 和 methods,但 DOM 还未挂载。常用于发送网络请求来获取初始数据。

挂载(beforeMount、mounted)

beforeMount:template 模板已编译为 render 函数,但 $el 仍然是虚拟的 DOM 节点。

mounted:可以操作 DOM 元素,常用于初始化第三方插件、操作 DOM 元素等。

更新(beforeUpdate、updated)

beforeUpdate:可以在数据更新但 DOM 未更新时进行一些操作,比如保存当前 DOM 状态。

updated:可以在 DOM 更新后进行一些操作,比如获取更新后的 DOM 元素信息。

销毁(beforeDestroy、destroyed)

beforeDestroy:可以在实例销毁前进行一些清理工作,比如取消定时器、解绑自定义事件等。

destroyed:实例已经完全销毁,无法再访问实例的属性和方法。

激活(仅适用于 <keep-alive> 包裹的组件)

activated:当组件被缓存并重新激活时执行,可用于恢复组件状态或重新发起请求。

deactivated:当组件被缓存时执行,可用于暂停组件中的一些操作,如暂停定时器。

错误捕获(errorCaptured)

触发时机:当捕获一个来自子孙组件的错误时被调用。
特点:可以在这个钩子中处理错误,防止错误向上传播,同时可以记录错误信息。

8、工程化开发与脚手架 Vue CLI
两种开发模式

传统开发模式:基于html、css、js文件,直接引入核心包,开发Vue

工程化开发模式:基于构建工具(webpack、vite)的环境开发Vue

脚手架 Vue CLI

概念:是一个全局命令工具

使用步骤:

1. 安装 Node.js 和 npm

//访问node.js官网下载安装后,通过一下命令验证安装
node -v
npm -v

2.安装 Vue CLI

//使用npm全局安装
npm install -g @vue/cli
//使用yarn全局安装
yarn global add @vue/cli//验证安装成功
vue --version

3.创建项目

vue create project-name

4.启动项目

npm run serve   或  yarn serve
项目目录介绍

 9、组件化开发与根组件

组件化:将一个复杂的应用拆分成多个小的、可复用的组件,每个组件负责一个特定的功能或页面部分

优势:1、提高代码复用 2、便于维护与管理

语法高亮插件:Vetur

插件使用一:<vue +回车 生成组件模版,类似于!+回车生成html模版

组件注册方式:

局部注册:只能在注册的组件内使用

1、创建.vue文件

2、在使用的组件内导入并注册

全局注册:所有组件内都能使用

1、创建.vue文件

2、main.js中进行全局注册

组件的三大组成部分

注意点:

<template>只能有一个根元素

<style> 为全局样式,影响所有组件 <style scoped>为局部样式,只作用于当前组件

<script>中data是一个函数

组件通信

概念:指组件与组件之间的数据传递

组件之间的关系:父子关系与非父子关系

父子关系(props和$emit)

非父子关系: 1.provide与inject  2.eventbus

通信解决方案: vueX

10、VueRouter的使用

安装:

npm install vue-router

基本配置:

创建tools文件夹,创建Router.js文件(常规写在main.js中,但代码长,不适合)

导入Vue模块,使用createRouter函数创建路由实例,配置相关参数

import { createRouter, createWebHashHistory } from "vue-router";
import Login from "../components/login/Login.vue";
import Home from "../components/home/Home.vue";
import Order from "../components/order/Order.vue";
import Goods from "../components/goods/Goods.vue";
import AddGood from "../components/goods/AddGood.vue";
import GoodCategory from "../components/goods/GoodCategory.vue";
import ManagerList from "../components/manager/ManagerList.vue";
import ManagerOrder from "../components/manager/ManagerOrder.vue";
import ManagerReqList from "../components/manager/ManagerReqList.vue";
import TradeInfo from "../components/financial/TradeInfo.vue";
import TradeList from "../components/financial/TradeList.vue";
import DataCom from "../components/financial/DataCom.vue";
import Store from "../tools/Storage";const Router = createRouter({history: createWebHashHistory(),routes: [{path: "/login",component: Login,name: "login",},{path: "/home",component: Home,name: "home",children: [{path: "order/:type", // 0是普通订单 1是秒杀订单,component: Order,name: "Order",},{path: "goods/:type", // 0是普通商品 1是秒杀商品 2是今日推荐,component: Goods,name: "Goods",},{path: "addGood/:type", // 0是普通商品 1是秒杀商品 2是今日推荐,component: AddGood,name: "AddGood",},{path: "category",component: GoodCategory,name: "GoodCategory",},{path: "ownerlist",component: ManagerList,name: "ManagerList",},{path: "ownerreq",component: ManagerReqList,name: "ManagerReqList",},{path: "ownerorder",component: ManagerOrder,name: "ManagerOrder",},{path: "tradeinfo",component: TradeInfo,name: "TradeInfo",},{path: "tradelist",component: TradeList,name: "TradeList",},{path: "data",component: DataCom,name: "DataCom",},],redirect: "/home/order/0", //重定向,访问主页默认跳转到订单管理的普通订单},],
});Router.beforeEach((from) => {let isLogin = Store.getters.isLogin;if (isLogin || from.name == "login") {return true;} else {return { name: "login" };}
});export default Router;

其中参数:

1. history

history 配置项用于指定路由的历史模式,这决定了 URL 的表现形式以及路由切换的机制。Vue Router 4 提供了三种历史模式:

createWebHistory:使用 HTML5 History API 实现单页面应用的路由切换,URL 看起来像普通的 URL,没有哈希符号 #

createWebHashHistory:使用 URL 的哈希部分(# 后面的内容)来实现路由切换,URL 中会带有哈希符号

createMemoryHistory:这种模式适用于 SSR(服务器端渲染)环境,它将路由历史存储在内存中,不依赖浏览器的历史记录。

2.routes

routes 是一个数组,用于定义路由规则,每个规则是一个对象,包含以下常见属性:

path:路由的路径,可以是静态路径,也可以包含动态参数。

name:路由的名称,用于方便在代码中进行路由导航

component 或 components

  • component:指定该路由对应的组件,可以是静态导入的组件,也可以是使用动态导入(路由懒加载)的组件。
  • components:当一个路由需要渲染多个组件时使用,是一个对象,键为组件的名称,值为对应的组件。例如:

children:用于定义嵌套路由,是一个数组,包含子路由的配置。

meta:用于存储路由的元信息,例如路由的权限要求、页面标题等。

3. scrollBehavior

scrollBehavior 是一个函数,用于控制路由切换时的滚动行为。它接收三个参数:to(目标路由)、from(当前路由)和 savedPosition(如果是通过浏览器的前进 / 后退按钮切换路由,会有保存的滚动位置)。

4. parseQuery 和 stringifyQuery

  • parseQuery:自定义查询字符串的解析函数。
  • stringifyQuery:自定义查询字符串的序列化函数。

路由跳转:跳转方式根据实际情况写

1.使用<router-link to=""> 代替a标签

2.使用push方法

            // 点击跳转到Home.vuesetTimeout(() => {this.$router.push({ name: "home" })}, 1500);

3.element组件

      <el-menu-item index="/home/order/1"></el-menu-item>

Vue路由-重定向redirect

当一个页面含多个链接时,从一个页面跳转到另一个页面,固定需要跳转的第一个页面就是重定向,比如,从login页面到home页面,home有首页,美食等小模块,想要直接跳转到首页,这时就要用到重定向,又比如没有该路径,not found 诸如此类

11、VueX的使用

概念:Vuex是一个状态管理工具

使用场景:

某个状态多个组件使用,比如个人信息

多个组件共同维护一份数据,比如购物车

另外还有登录状态管理等

使用步骤:

1、在tools文件夹中创建一个storage.js文件

2、导入VueX或者导入 createStore 函数

//导入Vuex
import Vue from 'vue'
import Vuex from 'vuex'//导入Vuex中的createStroe函数
import { createStore } from "vuex";

3、创建仓库

const Store = createStore({ )};

4、导出到main.js

export default Store;

5.设置state等属性

import { createStore } from "vuex";// 登录状态管理
const Store = createStore({state() {return {userName: "",userPassword: "",};},getters: {isLogin: (state) => {return state.userName.length > 0;},},mutations: {clearUserInfo(state) {state.userName = "";state.userPassword = "";},registUserInfo(state, { name, password }) {state.userName = name;state.userPassword = password;},},
});export default Store;
  • state:存储用户的用户名和密码。
  • getters:通过 isLogin 判断用户是否已登录。
  • mutations:提供了两个方法,clearUserInfo 用于清除用户信息,registUserInfo 用于注册用户信息。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

收数据花式画图plt实战

目录 Python plt想把纵坐标化成对数形式代码 子图ax. 我又有ax scatter&#xff0c;又有ax plot&#xff0c;都要去对数 数字接近0&#xff0c;取对数没有定义&#xff0c;怎么办 创建数据 添加一个小的常数以避免对数未定义的问题 创建一个figure和一个子图ax 在子图a…

二项式分布(Binomial Distribution)

二项式分布&#xff08;Binomial Distribution&#xff09; 定义 让我们来看看玩板球这个例子。假设你今天赢了一场比赛&#xff0c;这表示一个成功的事件。你再比了一场&#xff0c;但你输了。如果你今天赢了一场比赛&#xff0c;但这并不表示你明天肯定会赢。我们来分配一个…

【算法工程】大模型开发之windows环境的各种安装

1. 背景 最近由于研究需要&#xff0c;我购置了两块3090显卡&#xff0c;以便在家中进行一些小规模的实验。为此&#xff0c;还更换了主机。当然&#xff0c;新系统上少不了要安装各种开发环境。从开发体验来看&#xff0c;macOS无疑更为流畅&#xff0c;但为了确保所有环境都能…

论文阅读笔记:Denoising Diffusion Probabilistic Models (2)

接论文阅读笔记&#xff1a;Denoising Diffusion Probabilistic Models (1) 3、论文推理过程 扩散模型的流程如下图所示&#xff0c;可以看出 q ( x 0 , 1 , 2 ⋯ , T − 1 , T ) q(x^{0,1,2\cdots ,T-1, T}) q(x0,1,2⋯,T−1,T)为正向加噪音过程&#xff0c; p ( x 0 , 1 , …

vscode查看文件历史git commit记录

方案一&#xff1a;GitLens 在vscode扩展商店下载GitLens 选中要查看的文件&#xff0c;vscode界面右上角点击GitLens的图标&#xff0c;选择Toggle File Blame 界面显示当前打开文件的所有修改历史记录 鼠标放到某条记录上&#xff0c;可以看到记录详情&#xff0c;选中O…

【数据挖掘】Python基础环境安装配置

【数据挖掘】Python基础环境安装配置 一、摘要二、安装Python3.13.2三、安装Jupyter Notebook四、安装Numpy和Pandas以及matplotlib五、安装scikit-learn库和seaborn库 一、摘要 本文主要介绍如何在Windows上安装Python3.13.2&#xff0c;然后基于该Python版本安装Jupyter not…

DeepSeek写打台球手机小游戏

DeepSeek写打台球手机小游戏 提问 根据提的要求&#xff0c;让DeepSeek整理的需求&#xff0c;进行提问&#xff0c;内容如下&#xff1a; 请生成一个包含以下功能的可运行移动端打台球小游戏H5文件&#xff1a; 要求 可以重新开始游戏 可以暂停游戏 有白球和其他颜色的球&am…

SpringMVC的执行流程剖析和源码跟踪

目录 一、常用组件:1、DispatcherServlet2、HandlerMapping3、Handler4、HandlerAdapter:5、ViewResolver6、View 二、SpringMVC的执行流程:1、流程图 在这里插入图片描述2、文字解析流程图3、ContextLoaderListener 三、源码跟踪1、doService()方法2、doDispatch()方法逻辑分解…

LeetCode hot 100 每日一题(13)——73. 矩阵置零

这是一道难度为中等的题目&#xff0c;让我们来看看题目描述&#xff1a; 给定一个 _m_ x _n_ 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 提示&#xff1a; m matrix.lengthn matrix[0].length1 < m, n …

ubuntu 解挂载时提示 “umount: /home/xx/Applications/yy: target is busy.”

问题如题所示&#xff0c;我挂载一个squanfs文件系统到指定目录&#xff0c;当我使用完后&#xff0c;准备解挂载时&#xff0c;提示umount: /home/xx/Applications/yy: target is busy.&#xff0c;具体的如图所示&#xff0c; 这种提示通常是表明这个路径的内容正在被某些进…

跟着StatQuest学知识06-CNN进行图像分类

目录 一、CNN特点 二、CNN应用于图像分类 &#xff08;一&#xff09;使用过滤器 &#xff08;二&#xff09;通过ReLU激活函数 &#xff08;三&#xff09;应用新的滤波器&#xff08;池化&#xff09; &#xff08;四&#xff09;输入 &#xff08;五&#xff09;输出…

MATLAB 控制系统设计与仿真 - 27

状态空间的标准型 传递函数和状态空间可以相互转换&#xff0c;接下来会举例如何有传递函数转成状态空间标准型。 对角标准型 当 G(s)可以写成&#xff1a; 即&#xff1a; 根据上图可知&#xff1a; 约当标准型 当 G(s)可以写成&#xff1a; 即&#xff1a; 根据上图…

Python网络编程入门

一.Socket 简称套接字&#xff0c;是进程之间通信的一个工具&#xff0c;好比现实生活中的插座&#xff0c;所有的家用电器要想工作都是基于插座进行&#xff0c;进程之间要想进行网络通信需要Socket&#xff0c;Socket好比数据的搬运工~ 2个进程之间通过Socket进行相互通讯&a…

C++ --- 多态

1 多态的概念 多态(polymorphism)的概念&#xff1a;通俗来说&#xff0c;就是多种形态。多态分为编译时多态(静态多态)和运⾏时多 态(动态多态)&#xff0c;这⾥我们重点讲运⾏时多态&#xff0c;编译时多态(静态多态)和运⾏时多态(动态多态)。编译时 多态(静态多态)主要就是我…

MQTT的安装和使用

MQTT的安装和使用 在物联网开发中&#xff0c;mqtt几乎已经成为了广大程序猿必须掌握的技术&#xff0c;这里小编和大家一起学习并记录一下~~ 一、安装 方式1、docker安装 官网地址 https://www.emqx.com/zh/downloads-and-install/broker获取 Docker 镜像 docker pull e…

ROS多机通信功能包——Multibotnet

引言 这是之前看到一位大佬做的集群通信中间件&#xff0c;突发奇想&#xff0c;自己也来做一个&#xff0c;实现更多的功能、更清楚的架构和性能更加高效的ROS多机通信的功能包 链接&#xff1a;https://blog.csdn.net/benchuspx/article/details/128576723 Multibotnet Mu…

pfsense部署四(静态路由的配置)

目录 一 . 介绍 二 . 配置过程 一 . 介绍 pfsense开源防火墙经常在进行组网时&#xff0c;通常会用于连接不同的网络&#xff0c;在这个时候进需要给pfsense配置路由&#xff0c;而这篇文章介绍的是静态路由的配置 二 . 配置过程 拓扑图&#xff1a; 本次实验使用ensp模拟器…

干货!三步搞定 DeepSeek 接入 Siri

Siri高频用户福音&#xff0c;接下来仅需3步教你如何将 DeepSeek 接入 Siri&#xff01;虽然苹果公司并没有给国行产品提供 ai 功能&#xff0c;但是我们可以让自己的 iPhone 更智能一点。虽然有消息称苹果和阿里巴巴将合作为中国iPhone用户开发AI功能&#xff0c;但我们可以先…

自动学习和优化过程,实现更加精准的预测和决策的智慧交通开源了

智慧交通视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。通过高效的实时视…

DeepSeek R1 本地部署指南 (3) - 更换本地部署模型 Windows/macOS 通用

0.准备 完成 Windows 或 macOS 安装&#xff1a; DeepSeek R1 本地部署指南 (1) - Windows 本地部署-CSDN博客 DeepSeek R1 本地部署指南 (2) - macOS 本地部署-CSDN博客 以下内容 Windows 和 macOS 命令执行相同&#xff1a; Windows 管理员启动&#xff1a;命令提示符 CMD ma…