1. JavaScript

1.1 基础介绍

  • JavaScript(简称:JS)是一门跨平台、面向对象的脚本语言,是用来控制网页行为,实现页面的交互效果。JavaScript和Java是完全不同的语言,但基本语法类似
  • 组成
    • ECMAScript: 规定了JS基础语法核心知识,包括变量、数据类型、流程控制、函数、对象等。

    • BOM:浏览器对象模型,用于操作浏览器本身,如:页面弹窗、地址栏操作、关闭窗口等。

    • DOM:文档对象模型,用于操作HTML文档,如:改变标签内的内容、改变标签内字体样式等。

1.2 引入方式

  • JS有两种引入方式,分为内部脚本和外部脚本

    • 内部脚本:将JS代码定义在HTML页面中
      • JavaScript代码必须位于<script></script>标签之间
      • 在HTML文档中,可以在任意地方,放置任意数量的<script></script>
      • 一般会把脚本置于<body>元素的底部,可改善显示速度
        • HTML页面是从上往下解析的,如果JS代码过多,影响页面显示速度
        • JS代码中,可以操作HTML标签,如果标签还没渲染出来[在JS代码下面,没加载出来],就可能会报错
    • 外部脚本:将JS代码定义在外部 JS文件中,然后引入到 HTML页面中
      • 外部JS文件中,只包含JS代码,不包含<script>标签
      •  引入外部js的<script>标签,必须是双标签
          

内部脚本引入

<script>

js代码;

</script>

<body><script>//1.内部脚本alert('Hello,World');</script>
</body>

外部脚本引入

<script src="外部文件路径"></script>

HTML代码
<body><script src="hello.js"></script>
</body>
js代码
alert('外部引入');

  • 细节: 
    • demo.js中只有js代码,没有<script>标签
  • JS书写规范
    • 结束符:每行js代码,结尾以分号结尾,而结尾的分号可有可无。(建议在一个项目中保持一致,要么全部都加,要么全部都不加)
    • 注释:单行注释,多行注解的写法, 与java中一致。

1.3 JS基础语法 

  • 1.31 变量&常量
  • JS中主要通过 let 关键字来声明变量的。( 弱类型语言,变量是可以存放不同类型的值的。)

  • 变量名需要遵循如下规则:
    • 组成字符可以是任何字母、数字、下划线(_)或美元符号($),且数字不能开头[与java相同]
    • 变量名严格区分大小写,name和Name是不同的变量
    • 不能使用关键字作为变量名,如:let、var、if、for等
  • JS中用 const 关键字声明常量
    • 在早期js中,声明变量还能用var,但不严谨(不推荐)
      • var声明的变量可以重复声明
      • var声明的作用域为全局作用域
  • 一旦声明,常量的值就不能改变(不能重新赋值)
<body><script>let a=10;a="hello";b=true;alert(a);alert(n);</script>
</body>

  • 拓展[输出方式]:
    • alert()                弹出警告框
    • console.log()      输出到控制台
    • document.write() 输出到body区域,在页面中显示(不常用)
1.32 数据类型
  • JavaScript的数据类型分为:基本数据类型和引用数据类型(对象)
  • 基本数据类型
number数字(整数、小数、NaN(not a Number))
boolean

布尔。true,false

null对象为空,JavaScript是大小写敏感的,因此null、Null、NULL是完全不同的
undefined声明的变量未初始化时,该变量的默认值是undefined
string字符串、单引号、双引号、反引号皆可,推荐单引号

数据类型可以用 typeof 去检测 

示例

<body><script>console.log(typeof 1)console.log(typeof 1.3)console.log(typeof true)console.log(typeof null)console.log(typeof 'asd')console.log(typeof "asd")console.log(typeof `asd`)</script></body>

演示

模板字符串语法[字符串反引号的应用场景]

  • 模板字符串的使用场景:拼接字符串和变量。

  • 模板字符串的语法:

    • `...` :反引号 (英文输入模式下键盘 tab 键上方波浪线 ~ 那个键)

    • 内容拼接时,使用 ${ } 来引用变量

    <script>let name ='张三';let age = 18;let info = `大家好,我是新入职的${name},今年${age}岁`;let info1 = `大家好,我是新入职的`+name+`,今年`+age+`岁`;console.log(info);console.log(info1);</script>

1.33 函数 
  • 介绍
    • 函数(function)是被设计用来执行特定任务的代码块,方便程序的封装复用。
  • 定义
    • JavaScript中的函数通过function关键字进行定义,语法为:
function functionName(参数1,参数2....){执行代码
}let result = add(10,20);
alert(result);
  • 调用 :函数名称(实际参数列表)

注:JS为弱类型语言,形参、返回值都不需要指定类型,在调用函数时,实参个数和形参个数可以不一致,但建议一致 

<body><script>function add(a,b){return a+b;}alert(add(20,10));</script>
</body>

1.34 匿名函数
  • 匿名函数是一种没有名称的函数,可以通过两种方式定义:函数表达式和箭头函数。

函数表达式
let add=function(a,b){retutn a+b;
}箭头函数
let add =add(a,b) =>{return a+b;
}
  •  匿名函数定义后,可以通过变量名直接调用

let result = add(10,20);

alert(result);

    <script>let add=function(a,b){return a+b;}let del=(a,b)=>{return a-b;}console.log(add(1,2));console.log(del(1,2));</script>

 1.35 自定义对象
  • 定义格式

let 对象名 ={

        属性名1:属性值1,

        属性名2:属性值2,

        属性名3:属性值3,

        方法名:function(形参列表){ }

}

    <script>let user={name:'zhangsan',age:18,gender:'男',toString(){return `姓名:${this.name},年龄:${this.age},性别:${this.gender}`}}console.log(user.toString())</script>

细节 :如果使用箭头函数,this不指向当前对象,指向当前对象的父级【不推荐】

1.36 json
  • 概念:
    • JavaScript Object Notation,JavaScript对象标记法(JS对象标记法书写的文本)
    • 由于语法简单,层次结构鲜明,多用于作为数据载体,在网络中进行数据传输。
  • 方法
    • JSON.parse() :将json文本转换成JS对象
    • JSON.stringify():将JS对象转换成json文本
    <script>let user={name:'zhangsan',age:18,gender:'男',toString:function(){return `姓名:${this.name},年龄:${this.age},性别:${this.gender}`}}console.log(JSON.stringify(user));let personJson='{"name":"zhangsan","age":18,"gender":"男"}'console.log(JSON.parse(personJson));</script>

 

细节:json格式的文本所有的key必须使用双引号引起来 

1.4 DOM

  • 1.41 概念
  • DOM:Document Object Model 文档对象模型。也就是 JavaScript 将 HTML 文档的各个组成部分封装为对象。
    • Document:整个文档对象

    • Element:元素对象   [如<html><head>,<body>等]

    • Attribute:属性对象   [如<href>等]

    • Text:文本对象   [如<h1>文本</h1>中的文本]

    • Comment:注释对象   [就是注释]

  • 1.42 操作
    • DOM操作核心思想:
      • 将网页中所有的元素当作对象来处理(标签的所有属性在该对象上都可以找到)
    • 操作步骤:
      • 获取要操作的DOM元素对象
      • 操作DOM对象的属性或方法(查文档或AI)
    • 获取DOM对象
      • 根据CSS选择器来获取DOM元素,获得匹配到的第一个元素:document.querySelector('选择器')
      • 根据CSS选择器来获取DOM元素,获得匹配到的所有元素:document.querySelectorAll('选择器')
        • 注:得到的是一个NodeList节点集合,是一个伪数组(有长度、有索引的数组)
      • 其他方式(了解,已经用的很少了)
        • document.getElementById('id')
        • document.getElementsByTagName('div')
        • document.getElementsByClassName('cls')
<body><h1 id="title">111</h1><h1 id="title1">222</h1><h1 id="title1">333</h1><script>//1.获取DOM对象let h1=document.querySelector('#title');let h2=document.querySelectorAll('#title1');//2.调用DOM对象中的属性或方法h1.innerHTML='修改文本';h2[1].innerHTML='修改文本2';</script>
</body>

1.5 事件监听 

  • 1.51 概念
    • 事件:HTML事件是发生在HTML元素上的"事情"。比如:
      • 按钮被点击
      • 鼠标移动到元素上
      • 按下键盘按键
    • 事件监听:JavaScript可以在事件触发时,立即调用一个函数做出相应,也成为事件绑定注册事件
  • 1.52 事件监听
    • 语法: 事件源.addEventListener('事件类型’,事件触发执行的函数);
    • 事件监听三要素
      • 事件源:哪个dom元素触发了条件,要获取dom元素
      • 事件类型:用什么方式触发,比如:鼠标单击 click
      • 事件触发执行的函数:要做什么事
<body><input type="button" id="btn1" value="按钮1"><input type="button" id="btn2" value="按钮2"><script>var btn1 =document.querySelector("#btn1").addEventListener("click",function(){console.log("第一个按钮点击成功")});</script>
</body>

早期版本写法(了解):

  • 事件源.on事件 = function() {...} 
  • 缺点:on方式会被覆盖,addEventListener方式可以绑定多次,拥有更多特性,推荐使用
1.53 常见事件
  • 鼠标事件
    • click:鼠标点击
    • mouseenter:鼠标移入
    • mouseleave:鼠标移出
  • 键盘事件
    • keydown:键盘按下触发
    • keyup:键盘抬起触发
  • 焦点事件
    • focus:获得焦点触发
    • blur:失去焦点触发
  • 表单事件
    • input:用户输入时触发
    • submit:表单提交时触发

2. Vue

2.1 概述

  • Vue,是一款用于构建用户界面渐进式的JavaScript框架(官方网站:https://cn.vuejs.org)。

  • 构建用户界面
    • 构建用户界面是指,在Vue中,可以基于数据渲染出用户看到的界面。
  • 渐进式
    • 渐进式中的渐进呢,字面意思就是 "循序渐进"。Vue生态中的语法呢是非常多的,比如声明式渲染、组件系统、客户端路由(VueRouter)、状态管理(Vuex、Pinia)、构建工具(Webpack、Vite)等等。
  • 框架
    • 就是一套完整的项目解决方案,用于快速构建项目。
    • 优点:大大提升前端项目的开发效率
    • 缺点:需要理解记忆框架的使用规则。

2.2 准备工作

  • 准备
    • 引入Vue模块(官方提供)
    • 创建Vue程序的应用实例,控制视图的元素
    • 准备元素(div),被Vue控制
<body><div id="app"></div><script type="module">//引用官方模块import { createApp } from 'https://unpkg.com/vue@3/dist/vue.global.js'//控制视图元素createApp({}).mount('#app');    //调用mount方法,接管app区域[其实就是CSS选择器]</script></body>
  • 数据驱动视图
    • 准备数据
    • 通过插值表达式渲染页面
<body><div id="app"><!--    通过插值表达式渲染页面 --><h1>{{msg}}</h1></div><script type="module">import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'createApp({//定义方法[准备数据]data(){return{msg:'hello vue'}}}).mount('#app');    </script></body>

细节

  • Vue中定义数据,必须通过data方法来定义,data方法返回值是一个对象,在这个对象中定义数据。

  • 插值表达式中编写的变量,一定是Vue中定义的数据,如果插值表达式中编写了一个变量,但是在Vue中未定义,将会报错 。

  • Vue应用实例接管的区域是 '#app',超出这个范围,就不受Vue控制了,所以vue的插值表达式,一定写在 <div id="app">...</div> 的里面 。

2.3 常用指令

  • 指令:HTML标签上带有 v-前缀的特殊属性,不同的指令有不同的含义,可以实现不同的功能
  • 常用指令
指令作用
v-for列表渲染,遍历容器的元素或者对象的属性
v-bind为HTML标签绑定属性值,如设置 href , css样式等
v-if/v-else-if/v-else条件性的渲染某元素,判定为true时渲染,否则不渲染
v-show根据条件展示某元素,区别在于切换的是display属性的值
v-model在表单元素上创建双向数据绑定
v-on为HTML标签绑定事件
2.31 v-for
  • 作用:列表渲染,遍历容器的元素或者对象的属性 

  • 语法:

<tr v-for="(item,index) in items" : keys="item.id"> {{item}}</tr>​​​​​​​
  • 参数
    • items 为遍历的数组

    • item 为遍历出来的元素

    • index 为索引/下标,从0开始 ;可以省略,省略index语法: v-for = "item in items"

  • key:
    • 作用:给元素添加的唯一标识,便于vue进行列表项的正确排序复用,提升渲染性能

    • 推荐使用id作为key(唯一),不推荐使用index作为key(会变化,不对应)

    • 注:遍历的数组,必须在data中定义; 要想让哪个标签循环展示多次,就在哪个标签上使用 v-for 指令。

2.32 v-bind
  • 动态为HTML标签绑定属性值,如设置href,src,style样式等。
  • 语法:
v-bind:属性="变量"//简化版:属性="变量"<td><img class="avatar" v-bind:src="e.image" alt="令狐冲"></td>
  • 注:v-bind 所绑定的数据,必须在data中定义/或基于data中定义的数据而来。
2.33 v-if & v-show
  • 作用:这两类指令,都是用来控制元素的显示与隐藏的
  • v-if:
    • 语法:v-if="表达式",表达式值为 true,显示;false,隐藏

    • 原理:基于条件判断,来控制创建或移除元素节点(条件渲染)

    • 场景:要么显示,要么不显示,不频繁切换的场景

    • 其它:可以配合 v-else-if / v-else 进行链式调用条件判断

    • 注意: v-else-if必须出现在v-if之后,可以出现多个;v-else 必须出现在v-if/v-else-if之后

<td><span v-if="e.job==1">班主任</span><span v-else-if="e.job==2">讲师</span><span v-else-if="e.job==3">学工主管</span><span v-else-if="e.job==4">教研主管</span><span v-else-if="e.job==5">咨询师</span><span v-else>其他</span>
</td>
  • v-show:

    • 语法:v-show="表达式",表达式值为 true,显示;false,隐藏

    • 原理:基于CSS样式display来控制显示与隐藏

    • 场景:频繁切换显示隐藏的场景

<td><span v-show="e.job == 1">班主任</span><span v-show="e.job == 2">讲师</span><span v-show="e.job == 3">学工主管</span><span v-show="e.job == 4">教研主管</span><span v-show="e.job == 5">咨询师</span>
</td>
v-if 与 v-show的区别 
  • v-if: 条件不成立,直接不渲染这个元素(不频繁切换的场景)
  • v-show:通过css样式,来控制元素的展示与隐藏(频繁切换的场景)
2.34 v-model
  • 作用:在表单元素上使用,双向数据绑定。可以方便的 获取设置 表单项数据
  • 语法:v-model="变量名"
  • 这里的双向数据绑定,是指 Vue中的数据变化,会影响视图中的数据展示 。 
createApp({data() {return {此处数据searchForm:{name: '',gender: ''job: '',},empList: [...]
}}}.mount(...)

注意:v-model 中绑定的变量,必须在data中定义。 

2.35 v-on 
  • 作用:为html标签绑定事件(添加时间监听)
  • 语法:
语法
v-on:时间名="方法名"
简写为   @时间名="..."<button type="button" v-on:click="search">查询</button>
<button type="button" @click="clear">清空</button>
  • 方法需定义,与data平级 

3. Ajax 

  • 介绍: Asynchronous JavaScript And XML,异步 的JavaScript和XML
  • 作用:
    • 数据交换:通过Ajax可以给服务器发送请求,并获取服务器响应的数据。
    • 异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术,如:搜索联想、用户名是否可用的校验等。

XML:(英语:Extensible Markup Language) 可扩展标记语言,本质是一种数据格式,可以用来存储复杂的数据结构

3.1 同步与异步

  • 同步请求

浏览器页面在发送请求给服务器,在服务器处理请求的过程中,浏览器页面不能做其他的操作。只能等到服务器响应结束后才能,浏览器页面才能继续做其他的操 作 

  • 异步请求

浏览器页面发送请求给服务器,在服务器处理请求的过程中,浏览器页面还可以做其他的操作。 

 3.2 Axios

  • 介绍: Axious 是对原生的Ajax进行了封装,简化书写,快速开发。
  • 官网:Axious
  • 步骤:
    • 引入Axious的js文件(参考官网)
    • 使用Axious发送请求,并获取响应结果
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
 axios({url:'https://mock.apifox.cn/m1/3083103-0-default/emps/list',method:'get'}).then(function(res) {console.log(res.data);}).catch(function(err) {console.log(err);})

 method:请求方式 GET/POST

url:请求路径

data:请求数据(POST)

params:发送请求时携带的url参数,如:...?key=val

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

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

相关文章

代码随想录刷题Day23

右旋字符串 这道题是比较常规的对字符串的复制操作&#xff0c;找到右旋部分的分界点是关键 代码直接贴出来&#xff1a; #include<stdio.h> #include<string.h> int main(){int k;char s[10000];scanf("%d %s",&k,s);int cnt 0;for(int i str…

机器学习sklearn:编码、哑变量、二值化和分段

就是转换为数值类型方便机器学习模型处理一、编码这里举例将Survived这一行的数据转换为编码&#xff0c;原本是字符串类型2、将标签编码并赋值回去from sklearn.preprocessing import LabelEncoder y data.iloc[:, -1] # 最后一列拿出来 print(y) le LabelEncoder() le …

嵌入式八股文总结(ARM篇)

嵌入式开发中使用的通常是ARM芯片&#xff0c;在此总结一些面试常问的问题&#xff0c;希望可以和大家一起进步。&#xff08;持续更新中……&#xff09; 目录 1. 介绍一下I2C的传输时序 2. I2C为什么加上拉电阻&#xff0c;为什么使用开漏输出 3. I2C能接多少个设备&…

TCL --- 列表_part2

0 回顾 列表part0和part1描述了列表的创建&#xff0c;修改&#xff0c;获取&#xff0c;搜索等相关命令。接下来这篇文章将介绍列表的排序和拼接。通过这三篇文章的描述&#xff0c;详细大家对列表具有一个详细并且系统的认识。 1 排序 排序是一个老生常谈的话题。最最最常见的…

Kafka 单机多 Broker 实例集群搭建 | 详情

全文目录&#xff1a;开篇语前言1. Kafka 集群架构2. 环境要求2.1 安装 Java2.2 安装 Zookeeper3. 安装 Kafka4. 创建 Topic4.1 查看创建的 Topic5. 测试 Kafka 集群5.1 生产者&#xff08;Producer&#xff09;测试5.2 消费者&#xff08;Consumer&#xff09;测试6. 小结文末…

Ajax——异步前后端交互提升OA系统性能体验

本文介绍了Ajax中的基础使用&#xff0c;包括XMLHttpRequest的状态变化、并使用BMI 场景的示例进行介绍&#xff0c;以及结合 DAO 和 Servlet 处理OA系统复杂业务逻辑和JSON数据的处理等等。 本文目录一、Ajax 基础html页面二、 XMLHttpRequestXMLHttpRequest的状态变化同步和异…

【最后一个单词的长度】

思路 逆向遍历&#xff1a; 从字符串末尾开始向前遍历&#xff0c;跳过末尾的空格&#xff0c;直到找到非空格字符。 遇到非空格字符时开始计数&#xff0c;直到再次遇到空格或字符串开头。 状态标记&#xff1a; 使用 state 标记是否已经进入最后一个单词的计数阶段&#xff1…

OpenCV学习 day3

一、灰度实验 将彩色图像转换为灰度图像的过程称为灰度化&#xff0c;这种做法在图像处理中和计算机视觉领域非常常见 1、灰度图 灰度图是一种 单通道图像&#xff0c;每个像素仅存储 亮度信息&#xff08;0纯黑&#xff0c;255纯白&#xff09;&#xff0c;没有颜色信息&#…

基于单片机一氧化碳CO检测/煤气防中毒检测报警系统

传送门 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目速选一览表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目功能速览 概述 基于单片机的CO检测系统通过传感器实时监测环境中的一氧化碳浓度&#xff0c;结合信号处理电路与…

前端-移动Web-day3

目录 1、视口 2、rem体验 3、rem基本使用 4、媒体查询 5、rem适配 6、rem布局 7、less-体验 8、less-注释 9、less-运算 10、less-嵌套 11、less-变量 12、less-导入 13、less-导出 14、less-禁止导出 15、案例-极速问诊 1、视口 <!DOCTYPE html> <htm…

【正点原子K210连载】第二十四章 按键输入实验 摘自【正点原子】DNK210使用指南-CanMV版指南

第二十四章 按键输入实验 本章实验将介绍如何使用CanMV让Kendryte K210获取板载按键的状态。通过本章的学习&#xff0c;读者将学习到在CanMV下读取Kendryte K210的GPIO上的高低电平状态。 本章分为如下几个小节&#xff1a; 14.1 maix.GPIO模块介绍 14.2 硬件设计 14.3 程序设…

基于springboot/java/VUE的旅游管理系统/旅游网站的设计与实现

用户&#xff1a;注册&#xff0c;登录&#xff0c;旅游景点&#xff0c;酒店信息&#xff0c;旅游线路&#xff0c;公告信息&#xff0c;留言板&#xff0c;后台管理&#xff0c;个人中心&#xff0c;门票预订管理&#xff0c;酒店预订管理管理员&#xff1a;登录&#xff0c;…

Python Excel 高阶教程:使用 Spire.XLS 插入、修改和删除迷你图

Python 操作 Word 文档&#xff1a;主流库对比与选择指南 在办公自动化、报告生成、数据处理等领域&#xff0c;利用 Python 程序化地创建、读取或修改 Microsoft Word 文档 (.docx 格式) 是一项非常实用的技能。Python 生态中有多个优秀的库可以完成这项任务&#xff0c;但它…

WebPages PHP:深入解析PHP在网页开发中的应用

WebPages PHP&#xff1a;深入解析PHP在网页开发中的应用 引言 随着互联网技术的飞速发展&#xff0c;PHP作为一种开源的脚本语言&#xff0c;已经在网页开发领域占据了举足轻重的地位。本文将深入探讨PHP在网页开发中的应用&#xff0c;包括其优势、常用框架、开发流程以及未来…

【深度学习】【三维重建】windows11环境配置PyTorch3d详细教程

【深度学习】【三维重建】windows11环境配置PyTorch3d详细教程 文章目录【深度学习】【三维重建】windows11环境配置PyTorch3d详细教程前言确定版本对应关系源码编译安装Pytorch3d总结前言 本人windows11下使用搭建PyTorch3d环境&#xff0c;故此以详细教程以该算法依赖的环境…

SpringBoot+Mybatis+MySQL+Vue+ElementUI前后端分离版:日志管理(四)集成Spring Security

目录 一、前言 二、后端开发及调整 1.日志管理开发 2.配置调整 3.日志入库&#xff08;注解、切面&#xff09; 三、前端调整 1.日志管理开发 四、附&#xff1a;源码 1.源码下载地址 五、结语 一、前言 此文章在上次调整的基础上开发后端管理系统的用户请求日志功能&…

ceph 14.2.22 nautilus Balancer 数据平衡

Ceph Balancer (upmap 模式) 启用与配置 在 Ceph Nautilus (14.2.22) 版本中启用和配置 Balancer 的完整步骤 1. 前提检查 检查集群的初始状态和版本。 集群状态 (ceph -s)cluster:id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxhealth: HEALTH_OKservices:mon: 3 daemons, quo…

在Linux上对固态硬盘进行分区、格式化和挂载的步骤

在Linux上对固态硬盘进行分区、格式化和挂载的步骤如下&#xff1a; 插入固态硬盘&#xff1a;将固态硬盘插入计算机的SATA或M.2接口。 确认固态硬盘被识别&#xff1a;打开终端&#xff0c;输入以下命令查看硬盘是否被系统识别 fdisk -l 查找硬盘列表中的固态硬盘&#xf…

用Unity结合VCC更改人物模型出现的BUG

1、上传模型时出现错误经过排查是因为服装发型预制体放到人物模型上之后&#xff0c;物体上自动多了一个空脚本&#xff0c;怀疑是VRC工具箱自动添加的。解决方法&#xff1a;在上传前将带有空脚本的物体上的组件删除即可2、添加头发时出现模型碰撞错误按照【【VRCHAT】从零开始…

k8s之DevicePlugin

解密 Kubernetes Device Plugin&#xff1a;让容器轻松驾驭特殊硬件 在容器化技术飞速发展的今天&#xff0c;容器凭借轻量、隔离、可移植的特性成为应用部署的主流选择。但在实际应用中&#xff0c;当容器需要访问 GPU、FPGA 等特殊硬件资源时&#xff0c;事情就变得不那么简单…