当前位置: 首页 > news >正文

vue复习

1.试述前端开发技术发展变化历程,理解推动技术发展动力以及对软件开发职业的启发。

2.当前前端开发技术主要特征有哪些?

前后端分离开发:

前端专注页面展示效果与用户使用体验,后端专注为前端提供数据和服务。

工程化特征:模块化、组件化、规范化、自动化

模块化:采用分治思想,将大文件拆分成小文件,每个小文件只负责一个功能,降低复杂度,提高复用率。针对js部分。

组件化:组件化是对交互界面的拆分,是包含html、css、js的功能相对完备的结构单元,提现分治、封装、复用的思想,(分治:将大页面分为小组件,降低复杂度,提高可维护性;封装:组件内部实现逻辑不用关心,组件内变化也不会影响到全局;复用:避免大量重复代码)

规范化:提升效率,降低沟通成本。

自动化:自动化的工具,提升效率,有包管理工具(npm yarn)、自动化构建工具(webpack、grunt,gulp)、规范化工具(eslintstylelint

MVVM模式:

照分层思想 , 将 前 端 页 面 纵 向 分 成 模 型 model、 视图view 和视图模型viewModel三部分

响应式布局:

布局响应式和数据响应式

3.常用的技术框架和ui框架都有哪些?这些框架在前端开发框架的作用。

 

4.块级元素和行内元素的特点有哪些?分别列出在html中不少于5个行元素和行内元素。

5. 在css中常用选择器有哪些?

标签选择器、id选择器(#para1{textGalign:center;color:red;})、class选择器(.center{textGalign:center;})、后代选择器(.container .p-font{color:red})、伪类选择器

6. 在css中常用计量单位都有哪些?响应式界面布局编程中如何使用?

响应式不要用px就可以了 

7. 试描述less的主要特征及使用less能带来什么好处? 

less是预处理语言和扩充了css,通过编译器将其转换成css文件,再交给浏览器使用,增加了变量、嵌套、混入、函数、继承等功能。

好处:提高效率、代码复用、易于维护、动态样式生成。

html 文件中使用 link 引入外部样式文件时 , 引入的 less 文件在先 , 引入的less.js 文件在后 , 文件的顺序不能颠倒 . 使用外部 less 文件时 , 直接使用html文件浏览页面时会报跨域错误 , 通过 web 服务器浏览则不会报错 .
使用 less 编程时 , style type 属性设置为  text/less
vue 项目中使用 less, 只需 使用包安装工具 , :npm 安装 less 包即可 , style标签中增加 lang="less" 即可

8.举例说明什么是JavaScript变量的作用域。

变量的作用域就是变量在代码中可使用的范围,全局、局部、块级作用域。

9.什么是原型链以及原型链的作用?

  当调用对象方法或查看对象属性时, 首先在这个对象内部查找 , 如果没有找到, 就去这个对象的原型对象中查找 , 如果还没有找到 ,继续在更高一级原型 对象中查找 , 查找的过程呈现一个链状结构 , 称为原型链。
                                                        
function Person(name, age) {this.name = name;this.age = age;this.sayHello = function() {console.log(`hello my name is ${this.name}`);}
}function Teacher() {this.giveLessons = function() {console.log("授课");}
}Teacher.prototype = new Person("winkle", 40);function MusicTeacher() {this.musicPlay = function() {console.log("弹钢琴");}
}MusicTeacher.prototype = new Teacher();// 创建MusicTeacher实例
var obj = new MusicTeacher();// 调用方法并观察控制台输出
obj.giveLessons(); // 输出: 授课
obj.sayHello();    // 输出: hello my name is winkle
obj.musicPlay();   // 输出: 弹钢琴

Teacher.prototype = new Person("winkle", 40); //创建了一个新的Person实例,name"winkle"age40 //将这个实例赋值给Teacherprototype属性。这意味着所有通过Teacher构造函数创建的对象都会继承这个Person实例的属性和方法(包括sayHello

  MusicTeacher.prototype = new Teacher(); 这行代码创建了一个新的Teacher实例,并将其赋值给MusicTeacherprototype属性。由于Teacher的原型已经被设置为一个Person实例,因此通过MusicTeacher创建的对象将继承TeacherPerson的属性和方法。

var obj = new MusicTeacher(); 这行代码创建了一个新的MusicTeacher实例。

  • console.log(obj) 打印出obj对象,可以看到它包含了MusicTeacherTeacherPerson的属性和方法。
  • obj.giveLessons() 调用giveLessons方法,打印出"授课"
  • obj.sayHello() 调用sayHello方法,打印出"hello my name is winkle",因为Teacher的原型是设置为具有"winkle"名字的Person实例。

10.什么是异步编程,异步编程实现方式是什么?

        异步编程是进入任务队列的任务,当任务队列通知主线程可以执行时 , 才会进入主线程排队执行. 通常将比较耗时的 I/O 操作定义为异步任务 , : 将获取服务器端数据操作安排为异步任务。
        异步任务是通过 回调函数 实现的,回调函数就是当某个程序执行完成后,根据完成结果执行的函数.如:后台服务器返回查询的结果数据,对结果数据处理函数就是一个回调函数。
. /* 定义一个异步任务 * /
2.function getData(success, error) {
3. var flag= false
4. {/* 此处编写异步任务代码 , : 等待后台读取数据 , 如果获取成功 flag= true * /
5. flag = true
6. }
7. if (flag) {
8. success() // 执行函数 success
9. } else {
10. error() // 执行函数 error
11. }
12.}
13.
14./* 成功后的数据处理 * /
15.function fn1() {
16. console.log(" 执行了成功时的回调函数 ")
17.}
18./* 失败后资源的释放等问题 * /
19.function fn2() {
20. console.log(" 执行了失败时的回调函数 ")
21.}
22./* 执行任务 , 根据结果执行函数 fn1 fn2 * /
23.getData(fn1, fn2)

回调函数与普通的函数没有任何区别,主要是回调函数总是作为一个函数的参数出现, 待处理完成后在调用

11.使用JavaScript编写一个发布订阅程序。

12.什么是回调地狱,promise如何解决回调问题的?

回调地狱:如果回调嵌套层次太多, 就会出现回调地狱问题 , 代码可读性变差 ,不易维护,es6封装一个promise对象,通过链式编程解决回调地狱问题.
Promise 状 态 : 共 有 三 种 执 行 状 态 , 分 别 为 :pending( 表 示 执 行 中 )、fulfilled/resolved(执行成功状态 )、rejected( 失败状态 ).Promise 状态一旦更 改, 不可以再次改变 .
Promise函 数 :promise 提 供 了 resolve reject 两 个 函 数 , 用 于 改 变promise状态.执 行resolved 函 数,将 promise 状 态 更 改 为 成 功 状 态,执 行reject函数,将promise状态改为失败状态
Promise 实例对象 .then([ 状态成功时执行的函数 ],[状态失败时执行的函数]),在异步任务代码中使用resolve和reject两个函数变更promise状态,其目的就是为了控制then中的两个函数

 

 

Then :then 是原型链上一个构造函数 , 其生成是一个 promise 实例对象, 如下示例代码查看 then 的返回结果 .

 

then 方法返回的 promise 对象结果上 , 可以继续封装下一个异步操作 , 下一个异步操作结果的then 方法又可以继续封装 , 形成一个链条叫 then 链. 示例代码如下所示.使用 then 的链式编程 , 成功解决了回调地狱问题 .
1.new Promise(resolve = 􀎯> {
2. setTimeout(() = >  {
3. resolve(10) //1000MS 后 第一个 PROMISE 实例状态是成功 VALUE:10
4. }, 1000)
5.}). then(res = >   {
6. console.log(` 成功 : ${res}`)   /* 成功 :10' * /
7. return res * 5     /* 传递数据 * /
8.}, reason = >   {
9. console.log(` 失败 : ${reason}`)
10. return reason * 10
11.}).then(res = >   {
12. console.log(` 成功 : ${res}`)
13. return res * 5
14.}, reason = >   {
15. console.log(` 失败 : ${reason}`)
16. return reason * 10;
17.})

 

 

13.在es6中模块化导出中export和export default两个关键字有什么区别,使用import导入时有哪些注意事项?

1.export关键字可以导出模块中的函数变量常量、对象,

模块导出可分为命名式和默认式两种方式 . 命名式导出关键字export的位置可以出现在模块的任何位置

 

 2.

每个模块只能有一个默认导出 . 默认导出需要使用到exportdefault 关键字 ,默认导出无需使用花括号{},
通常将 export 关键字放在 JavaScript 文件的尾部 , 一次可以导出多项内容;
export 关键字不能使用在块作用域中 , 否则报错 ;
命名式导出可以导出多个成员, 默认导出则仅能导出一个成员 .
命名式导出可以出现多次 , 而默认导出一个模块却仅能使用一次
命名式导入一次可以导入多个成员 , 引入的成员名称要与导出的成员名称相同.
默认导入仅能导入一个成员 , 使用 import 引入时无需了解导出模块的细节;
导入关键字 import 必须放在文件的最开始 , 且前面不允许有其他逻辑代码, 这和其他所有编程语言风格是一致 .

 

 

14.试述html、css和JavaScript在编码中的常用规范。 

 

15.简述vue的特点是什么?

Vue 提供的数据绑定和事件监听功能 ,用于简化视图模型层中代码编写,Vue提供了一套完整的vue模板语法,将视图模型层产生的数据与视图层的dom 关联起来,当数据发生变化,视图展示的内容随之发生变化, 提高开发效率。

渐进式框架 

 

 

 

16.什么是vue模板和vue模板语法?

vue3 是通过一个叫做 createApp 函数创建实例对象的 . 创建 vue 实例对象函数的参数是一个配置对象, 选项式编码模式就是通过该配置对象描述相关的业务逻辑. 配置对象的属性很多 , :data 属性 、methods 属性 、computed 属性、watch属性等.
Data 属性 : vue 实例提供数据 , 这些数据可以来源于后台, 也可以是实例初始化定义的 , 当这些数据值发生变化时 , 视图层将“响应 发生的变化.
实例挂载 : vue 实例对象与视图层某个 dom 元素建立关联过程称为实 例挂载, 这个 dom 元素通常是容器标签div,通过mount函数。
Vue 模板 : vue 实例挂载的 dom 元素内部的代码片段称之为 vue 模板.
在这些代码中可以混入一些特殊 vue 语法 , : 上例代码第 行中使用了插值 语法, 这些 vue 使用的语法称为 vue 模板语法 .vue 模板代码并不能为浏览器 识别,vue 通过其自身的编译机制 , vue 模板中代码转换为标准的 让浏览器可以识别的html 片段 .

 

17.什么是vue模板语法,在vue模板语法中主要使用形式有哪些?

所谓的模板语法是指使用 vue 提供的 插值语法 指令语法 , 将视图模型层中定义的数据 函数与视图层中 dom 元素关联起来 , 当数据变化时 , 视图自动更新 , 视图发生变化时, dom 上绑定的数据也随之发生变化.
内容渲染 、 属性绑定、 列表渲染 条件渲染 双向绑定

 

18.什么是属性绑定,进行属性绑定时有哪些注意事项?

使用模板语法中提供的v- bind 指令 , 可以将数据绑定到html 元素属性上 , :class 属性 ,style 属性 ,value 属性等

 1.单个属性绑定

2.多个属性帮绑定v-bind="对象"

1.< div id= "app">
2. < input v bind= "inputAtt" />
3.< /div>
4.
5.< script>
6. const {
7.
8. createApp
9. } = Vue
10.
11. let app = createApp({
12.         data() {
13.                 return {
14.                         inputAtt: {
15.                                 type: 'text',
16.                                 name: 'userName',
17.                                 value: '绑定多个属性'
18.                         }
19.                 }
20.         }
21. })
22. app.mount('#app')
23.< /script>

3.绑定表达式

样式绑定

1. 对象 / 数组绑定
使用 v-bind 指 令 中 的 class 以 对 象 的 形 式 绑 定 , 语 法 格 式 为:class=" {key:value}";
key 是在样式中定义的选择器 ,value 是实例中的布尔类型的数据或 布尔表达式, 当变量为真时样式生效

 

19.条件渲染中v-if指令和v-show指令有什么区别?为什么要设置key?

1.v-if 指令必须作用到一个元素上 , 作为元素一个特殊的属性出现 , 当该指 令绑定数据值为真时, dom 元素才能被创建出来 ; 当绑定数据值为 false , 渲染时不创建该dom 元素或者将已创建的元素销毁 . 语法格式 :v-if=“布尔值或布尔表达式”.
如果一次需要渲染多个元 素, 则将 v-if 指令绑定在 template 元素上 ,template 标签体内有一组 html
, 实现分组渲染 , 示例代码如下所示
2.指令v-show 实现dom 元素的显示和隐藏.使用该指令的元素无论真与假,始终会被渲染,当绑定的数据值为真时,该元素显示,当绑定的数据值为假时,该元素隐藏.其底层原理是通过改变元素的样式 display属性实现的,如:
<p v-show="seen"> 条 件 渲 染 显 示 < /p>,
seen=false , 渲 染 结 果 为:<p style="display:none;"> 条件渲染显示< /p>

 

 

 

 

 

20.常见的表单类型有哪些?使用v-model指令如何绑定?

 

 

 

 

 

 

21.按照第6节综合示例的要求,完成表单数据采集。

22.过渡与动画

vue 提供了一个内置过渡组件 transition, 用于设置要实现的过渡效果
<template><div align="center" style="margin-top: 100px;"><button @click="show = !show">测试</button><transition><div v-if="show"><p>这是一段文字</p></div></transition></div>
</template><script>
export default {name: 'transitionTest',data() {return {show: true}}
}
</script><style scoped>
.v-enter-active, .v-leave-active {transition: all 0.5s;
}
.v-enter {transform: translateY(50px);opacity: 0;
}
.v-leave-to { /* 或者使用 .v-leave-active 如果您的意图是定义过渡期间的样式 */transform: translateY(-50px); /* 假设您想要在离开时向上移动文本 */opacity: 0; /* 离开时完全透明 */
}
</style>
v-enter-active、v-leave-active 选择器 , 就是tran-sition 组件提供的一组 transition 钩子函数

 

1)vGenter: 定义进入过渡的开始状态 . 在元素被插入之前生效 , 在元素被插入之后的下一帧移除.
2)vGenterGactive: 定义进入过渡生效时的状态 . 在整个进入过渡的阶段中 应用, 在元素被插入之前生效 , 在过渡 / 动画完成之后移除 . 这个类可以定义进入过渡的过程时间、 延迟和曲线函数.
3)vGenterGto: 定义进入过渡的结束状态 . 在元素被插入之后下一帧生效 (同时 vGenter 被移除 ), 在过渡 / 动画完成之后移除 .
4)vGleave: 定义离开过渡的开始状态 . 在离开过渡被触发时立刻生效 , 下 一帧被移除.
5)vGleaveGactive: 定义离开过渡生效时的状态 . 在整个离开过渡的阶段中 应用, 在离开过渡被触发时立刻生效 , 在过渡 / 动画完成之后移除 . 这个类可以 定义离开过渡的过程时间、 延迟和曲线函数 .
6)vGleaveGto: 定义离开过渡的结束状态 . 在离开过渡被触发之后下一帧生效( 同时 vGleave 被删除 ), 在过渡 /动画完成之后移除.

23.为什么要限制使用v-on指令绑定代码片段?

事件监听是指将 dom 操作事件和 JavaScript 代码片段进行绑定 , 在事件
发生时执行绑定的代码
<div id="app"><input type="button" value="事件监听" v-on:click="calcValue2($event)" /><input type="button" value="简写" @click="calcValue2($event)" />
</div><script src="../utils/vuejs.js"></script>
<script>const { createApp } = Vue;let app = createApp({methods: {calcValue2(event) {alert('Hello ' + event.target.tagName + '! ');}}});app.mount('#app');
</script>

点击任何一个按钮时,都会弹出一个警告框,显示“Hello BUTTON! ”,其中BUTTON是按钮元素的标签名。

传入的参数可以 在方法中直接使用, 参数可以是基本数据类型 , 也可以是引用数据类型

 

<div id="app"><input type="button" value="方法传参" @click="hello('winkle')" />
</div><script src="../utils/vuejs.js"></script>
<script>const { createApp } = Vue;let app = createApp({methods: {hello(name) {  // 修正了方法定义的大括号alert(`${name} say hello`);}}});app.mount('#app');
</script>

 

 

24.什么是事件冒泡现象,vue为了处理冒泡现象提供了哪些修饰符?

响应 dom 事件时 , 事件会由内向外传播 , 传播过程中会引起不同 dom 的连 锁响应,这种连锁响应称为冒泡现象,

 

 

 

<div class="outter" @click="outterClick"><div class="inner" @click.self="divClick"><input type="button" value="self 按钮" @click="btnClick" /></div>
</div><div class="outter" @click="outterClick"><div class="inner" @click="divClick"> <!-- 移除了.self修饰符,因为您可能想要正常触发div的点击事件 --><input type="button" value="stop 按钮" @click.stop="btnClick" /></div>
</div><script>
const { createApp } = Vue;
let app = createApp({methods: {outterClick() {alert('Outer div clicked!');},divClick() {alert('Inner div clicked!');},btnClick() {alert('Button clicked!');}}
});
app.mount(document.body); 
</script>

 当点击self按钮时,执行按钮的单击事件,再执行外部dom绑定的事件;点击stop按钮时,仅执行了按钮的单击事件.

 

 

25.在vue生命周期中,有哪些钩子函数,其执行时机是什么?

Vue 实例对象与其它对象一样 , 都存在创建 运行 更新 销毁等一系列的过程, 这个过程称为 vue实例的生命周期,在vue生命周期关键结点上,预设了一些函数,这些函数称作生命周期钩子函数.钩子函数会在生命周期中自动执行,无须使用事件监听.利用钩子函数,开发人员可以在合适的时机执行相应的业务逻辑代码.如使用 beforeMount钩子函数,可以在实例挂载前执行开发者自定义的代码.

 

 

<div id="app"></div><script>
// 假设Vue已经通过CDN或NPM等方式被正确引入
const { createApp } = Vue;let app = createApp({data() {return {message: '' // 用于存储从服务器获取的数据};},created() {alert('created ==== 2'); // 当实例被创建后调用// 通常不会在这里进行异步数据获取,因为DOM还未挂载},beforeMount() {alert('beforeMount ==== 3'); // 在挂载开始之前被调用// 这里的DOM元素还未被替换},mounted() {alert('mounted ==== 4'); // 在挂载完成后被调用// 此时可以进行异步数据获取,因为DOM已经可用this.fetchData();},beforeUpdate() {alert('beforeUpdate ==== 5'); // 在数据更新之前调用},updated() {alert('updated ==== 6'); // 在由于数据变化导致的虚拟DOM重新渲染和打补丁之后调用},beforeUnmount() { // Vue 3中,beforeDestroy已更名为beforeUnmountalert('beforeUnmount ==== 7'); // 在卸载组件实例之前调用},unmounted() { // Vue 3中,destroyed已更名为unmountedalert('unmounted ==== 8'); // 在卸载组件实例后调用},methods: {fetchData() {// 模拟异步数据获取,例如通过API调用setTimeout(() => {this.message = '数据已成功加载!';// 这里可以添加其他逻辑,比如更新DOM或触发其他事件}, 2000); // 模拟2秒的延迟}}
});app.mount('#app');
</script>

 

26.钩子函数mounted和created都可以获取后端提供的数据,二者有什么区别?

发送异步请求获取数据 , 并将数据展示在页面上是前端开发中的常见需求, 开发人员通常使用 created mounted 钩子函数获取数据。
1) 使用 mounted 函数 , 此时视图渲染已经完成 , 会因获取数据过慢会导致 页面闪屏现象, 而使用 created 函数时 , 视图尚未渲染 , 不会出现闪屏问题 .
2) 使用 created 函数时 , 根据默认条件查询数据时 , 由于视图尚未渲染 , 获取不到界面上查询条件绑定的数据. 若涉及的查询条件和 dom 操作有关 , 则必须在 mounted 中完成数据的提取 .
3) 使用这两个函数时 , 实例对象中的 data、computed、prop 等初始化工作已完成, 可以利用这些数据完成相应操作 , : 子组件可以利用 prop 传入值做为参数获取后端的数据.

 

 

27.什么是深度监听?为什么要设置深度监听?

 

当监听的属性为单值时 , 非常简单 , 可以省略 deep immediate 两个属 性, 只需在监听属性中配置 handler 方法 .

 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue Example</title><!-- 引入Vue库 --><script src="https://unpkg.com/vue@next"></script>
</head>
<body><div id="app"><input type="number" v-model="n"></div><script>// 使用Vue的createApp方法创建一个新的Vue应用const { createApp } = Vue;let app = createApp({data() {return {n: 0 // 初始化数据n为0};},watch: {// 监听n的变化n(newValue, oldValue) {let msg = `n的值由${oldValue}变为${newValue}`;alert(msg); // 当n变化时,弹出警告框显示变化信息}}});// 将Vue应用挂载到id为app的DOM元素上app.mount('#app');</script>
</body>
</html>

 在输入框中输入数字时,每次输入值变化,都会弹出一个警告框,显示n的值从什么变为了什么

数组监听需要 开启深度监听和handler 配置项 , 当数组中的值发生变化时 , 触发 handler 中代 码. 数组监听时 , 形参 value 是数组的指针 , 指向数组的变化后的值 , 无法获取 变化前的值.

 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue Example</title><!-- 引入Vue库 --><script src="https://unpkg.com/vue@next"></script>
</head>
<body><div id="app"><!-- 使用v-for指令循环渲染城市列表 --><p v-for="item in citys">{{ item }}</p><!-- 点击按钮调用changeCitys方法改变数组中的值 --><button @click="changeCitys">改变数组中的值</button></div><script>const { createApp } = Vue;let app = createApp({data() {return {citys: ['西安', '北京', '上海'] // 初始化城市列表};},watch: {// 监听citys数组的变化citys: {deep: true, // 深度监听数组内部的变化handler: function(newValue, oldValue) {// 注意这里应该使用citys而不是nlet msg = `citys的值由${JSON.stringify(oldValue)}变为${JSON.stringify(newValue)}`;alert(msg); // 当citys变化时,弹出警告框显示变化信息}}},methods: {changeCitys: function() {// 改变数组中的第一个元素this.citys[0] = '郑州';}}});// 将Vue应用挂载到id为app的DOM元素上app.mount('#app');</script>
</body>
</html>

 

对象监听和数组监听语法相同 , 要开启深度监听 , 并使用 handler 配置项完成监听
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue Example</title><!-- 引入Vue库 --><script src="https://unpkg.com/vue@next"></script>
</head>
<body><div id="app"><!-- 使用v-model指令绑定输入框的值到person.name --><input v-model="person.name" /></div><script>const { createApp } = Vue;let app = createApp({data() {return {person: { name: '张三', age: 18, sex: '女' } // 初始化person对象};},watch: {// 监听person对象的变化,需要深度监听person: {deep: true, // 深度监听对象内部属性的变化handler: function(newValue, oldValue) {// 注意这里应该使用person而不是nlet msg = `person的值由${JSON.stringify(oldValue)}变为${JSON.stringify(newValue)}`;alert(msg); // 当person变化时,弹出警告框显示变化信息}}}});// 将Vue应用挂载到id为app的DOM元素上app.mount('#app');</script>
</body>
</html>

将会看到一个包含输入框的网页。当您在输入框中输入内容时,person.name的值会实时更新,并且每次更新都会触发watch监听器,弹出一个警告框显示person对象的旧值和新值。上例中当对象中任何一个属性发生变化时,都可以被监听到,但是同数组 监听相同,是无法获取更改前的值.这种对象监听方式通常在关闭窗口时使用,检测数据是否被修改,如果修改,则提示保存信息.

 

28.属性监听和计算属性区别是什么? 

属性监听(watch)计算属性(computed)
定义监视数据属性的变化,并在变化时执行回调函数基于其他数据属性动态计算并返回一个新的值
触发时机数据变化时立即触发依赖的数据变化时触发,但结果会被缓存
执行逻辑可以执行异步操作或复杂逻辑通常用于同步计算,结果会被缓存
适用场景需要对数据变化进行响应并执行副作用时需要基于其他数据计算新值时
性能每次数据变化都会触发,可能影响性能由于缓存机制,性能更优
获取变化前后的值可以获取数据变化前后的值只能获取当前的值,不能获取之前的值
多属性监听可以监听单个或多个属性的变化一个计算属性可以依赖多个数据源

 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue 3 Example</title>
</head>
<body><div id="app"><p>{{ msg }}</p><p>{{ reversedMessage }}</p></div><script>const { createApp } = Vue;let app = createApp({data() {return {msg: 'hello',};},computed: {reversedMessage() {return this.msg.split('').reverse().join('');}}}).mount('#app');</script>
</body>
</html>
计算属性根据所依赖的数据 , 动态显示新的计算结果 . 如果系统中经常用到
一个数据项 , 而这个数据项依赖于其他数据 , 则把这个数据项设计为计算属性 .

 

29.在哪些场景使用计算属性,哪些场景使用属性监听? 

 

解释1:Vue.js组件的生命周期可以大致分为以下几个阶段:

  1. 创建阶段:在这个阶段,组件实例被创建,并且dataprops被初始化。beforeCreatecreated这两个钩子函数在这个阶段被调用。
    • beforeCreate:在这个阶段,组件实例还没有被完全初始化,datamethods等选项都还没有被设置到实例上,因此在这个阶段无法访问到它们。
    • created:在这个阶段,组件实例已经被完全初始化,dataprops已经被设置到实例上,并且可以访问到。但是,在这个阶段,组件的模板还没有被渲染,也没有挂载到DOM上。
  2. 挂载阶段:在这个阶段,组件的模板被渲染成虚拟DOM,然后虚拟DOM被挂载到真实的DOM上。beforeMountmounted这两个钩子函数在这个阶段被调用。
    • beforeMount:在这个阶段,模板已经被渲染成虚拟DOM,但是还没有挂载到真实的DOM上。
    • mounted:在这个阶段,组件已经被挂载到真实的DOM上,可以进行DOM操作。
  3. 更新阶段:当组件的dataprops或计算属性等发生变化时,组件会重新渲染。beforeUpdateupdated这两个钩子函数在这个阶段被调用。
    • beforeUpdate:在这个阶段,组件的虚拟DOM已经更新,但是还没有应用到真实的DOM上。
    • updated:在这个阶段,组件的虚拟DOM已经应用到真实的DOM上,DOM已经更新。
  4. 销毁阶段:当组件被销毁时,beforeDestroydestroyed这两个钩子函数被调用。
    • beforeDestroy:在这个阶段,组件实例仍然完全可用,但是在这个阶段之后,组件将被卸载。
    • destroyed:在这个阶段,组件已经被完全销毁,所有的事件监听器和子实例也都被移除。

因此,在created钩子函数中,您可以安全地访问和使用dataprops中定义的数据,因为它们已经在这个阶段之前被初始化和设置了。

 解释2:您提到的内容是关于Vue.js中watch选项的immediate属性的正确描述。在Vue.js中,当你使用watch来监听一个数据属性的变化时,默认情况下,这个监听器会在该属性第一次变化时触发,而不是在组件实例创建和数据初始化时立即触发。虽然immediate属性可以让监听器在数据初始化时立即执行,但它并不会改变监听器的基本行为——它仍然只会在监听的数据属性发生变化时执行(除非设置了immediate: true,这样它会在初始化时也执行一次)。此外,如果监听的是一个计算属性或者是一个深度监听(使用了deep: true),immediate属性的行为也是类似的。

30.试述前端开发中常用自动化工具的作用。

 单页面应用开发过程中,需要使用的自动化工具包括:包管理工具(npm)、自动化构建工具(webpack)、代码格式化工具(eslint)等。

 npm使用该工具, 开发者可以很方便地下载、安装上传及管理应用包

webpack其主要职责是将松散的模块按照依赖和规则打包成符合生产环境部署的前端资源, 将浏览器不能直接运行的拓展语言( :sass,less、typescript ) 编 写 的 代 码 , 转 换 为 浏 览 器 能 够 处 理 的JavaScript格式 , 完成对静态资源的优化等 .

 

npminstallwebpack-s-dev 

Bable 插件:由于不同版本浏览器在解析JavaScript 时遵循的标准规范不同 , 开发人员需要面对JavaScript 代码兼容性问题,bable插件是帮助开发人员解决这些问 题的有力工具.

 

 

31.执行npm工具常用命令,观察并分析package.json中文件的变化。

完成node安装,即可完成npm 的安装.

由于 npm 服务器位于国外 , 安装第三方依赖包时 , 可能会出现速度过慢现象, 此时可以使用 cnpm 代替npm.在安装好 npm 的基础上,执行安装命令 npm install-g cnpm --registry=https://registry.npmmirror.com,即可完成cnpm 的安装.

   

{"name": "项目名称","version": "1.0.0","description": "项目简介","author": "作者","private": true,"scripts": {/* scripts作用是将长命令转换成短命令, 使用key代替value */"dev": "webpack-dev-server","start": "npm run dev"},"dependencies": {/* 运行依赖项 */"babel-polyfill": "^6.26.0"},"devDependencies": {/* 开发依赖项 */"axios": "^0.18.1"},"engines": {"node": ">=6.0.0","npm": ">=3.0.0"},"browserslist": ["> 1%","last 2 versions","not ie <= 8"]
}

 

const path = require('path');module.exports = {// 模式,'development' 或 'production',用于启用Webpack的内置优化mode: 'development', // 注意这里修正了拼写错误,从 'delelopment' 改为 'development'// 入口文件entry: path.join(__dirname, 'src', 'index.js'),// 输出文件output: {// 文件路径,使用path.join可以确保在不同操作系统上路径的正确性path: path.join(__dirname, 'dist'),// 文件名filename: 'bundle.js'}
};

 

1.const Webpack = require('Webpack')
2.module.exports = {
3. // 入口文件 出口文件 插件配置
4. devServer: {
5. port : 8081, // 端口号
6. static:path.join(__dirname,'src'), // 资源目录
7. hot:true
8. }
9.}

 

 

 

32.使用vue-cli脚手架创建项目,并分析创建程序的目录结构及文件。

 

 

 

src 目录中还包括 app.vue mainj.s 两个文件 . 其中 app.vue 是项目的根组件, 相当于网站的首页 , 该组件的实例将挂载到 index.html 页面中 , 在根组件中使用路由完成页面的展示与跳转,

 

<template><div id="app"><img src="./assets/logo.png" alt="Logo"><router-view></router-view></div>
</template><script>
export default {name: 'App'
}
</script><!-- 如果有样式,可以在这里添加 -->
<style scoped>
/* 您的样式代码 */
</style>
Mainj.s 文件是应用入口函数 , 类似 c 语言的 main 函数 , 主要任务是引入全局使用的插件、 组件 模块库 样式等 , 将根组件挂载到页面的某一个 dom 结点上. 在项目启动时 , 首先加载此文件 , 创建根组件实例
// 引入 createApp 函数,用于创建 vue 实例
import { createApp } from 'vue';// 引入根组件 App
import App from './App.vue';// 引入路由配置
import router from './router';// 引入 Pinia 状态管理
import { createPinia } from 'pinia';// 创建 Vue 实例
const app = createApp(App);// 使用路由
app.use(router);// 创建 Pinia 实例并使用
const pinia = createPinia();
app.use(pinia);// 挂载 Vue 应用到 DOM 中的 #app 元素
app.mount('#app');
public 目录中的 index.html 文件是单页面应用中唯一的 html 页面 . 它是一个外壳页面, 具有特别重要的作用 , 所有 vue 组件都是通过此文件进行渲染加载

 

33.使用vite创建项目,并分析创建程序的目录结构及文件。

 

 

 

34.简述vue程序需要遵循的规范和标准。 

 

35.由软件开发的分治思想和面向对象封装性的特征,分析前端组件式开发的必要性。

组件式开发是按照软件分治思想和高内聚低耦合原则 ,把一个大的逻辑视图单元分割为若干个相互独立小单元,此种模式缩小了文件的颗粒度,页面需要切换时,浏览器仅需渲染变化部分组件,从而加快了 web页面的加载速度.它体现了面向对象编程中的封装性,提高了可维护性和复用性。

 

 

 

 

 

 

 

 

 

 

 

36.按照下图要求编写租房列表组件,并以此为例说明组件常用的通信方式有哪些?              

 

 

 

 

 

 

37.使用插槽设计一个网站的footer,然后说明什么是匿名插槽和具名插槽。

38. 试描述vue组件开发中应该遵循哪些命名规范? 

 

相关文章:

vue复习

1.试述前端开发技术发展变化历程&#xff0c;理解推动技术发展动力以及对软件开发职业的启发。 2.当前前端开发技术主要特征有哪些&#xff1f; 前后端分离开发&#xff1a; 前端专注页面展示效果与用户使用体验,后端专注为前端提供数据和服务。 工程化特征&#xff1a;模块…...

伊克罗德与九科信息共同发布RPA+AI智能机器人解决方案

12月12日&#xff0c;伊克罗德信息在上海举办“创见AI&#xff0c;迈进智能化未来——科技赋能零售电商”活动&#xff0c;与九科信息、亚马逊云科技共同探讨与分享&#xff0c;融合生成式AI技术和智能自动化&#xff08;RPA,Robotic Process Automation&#xff09;在电商零售…...

nano编辑器的使用

nano 是一个非常简单易用的命令行文本编辑器&#xff0c;它常用于在 Linux 或类 Unix 系统中快速编辑文件&#xff0c;特别适用于需要修改配置文件或快速编辑文本的场景。以下是一些常见的 nano 使用技巧和基本操作。 1. 打开文件 要使用 nano 编辑文件&#xff0c;打开终端并…...

灵当crm pdf.php存在任意文件读取漏洞

免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...

Liinux下VMware Workstation Pro的安装,建议安装最新版本17.61

建议安装最新版本17.61&#xff0c;否则可能有兼容性问题 下载VMware Workstation安装软件 从官网网站下载 https://support.broadcom.com/group/ecx/productdownloads?subfamilyVMwareWorkstationPro 选择所需版本 现在最新版本是17.61&#xff0c;否则可能有兼容性问题…...

性能测试度量指标学习笔记

目录 一、概要 二、不同系统软件性能测试度量指标 三、性能测试度量指标 1、响应时间 2、用户数 3、系统处理能力 4、错误率 5、成功率 6、资源占用率 7、CPU利用率 8、内存页交换速率 9、内存占用率 10、磁盘IO 11、磁盘吞吐量 12、网络吞吐量 13、系统稳定性…...

一款可以替代Navicat的数据库管理工具

Navicat是一款非常受欢迎的数据库管理工具&#xff0c;基本支持市面上的所有数据库、而且支持跨平台。 可以说Navicat是一款功能强大、非常全面的数据库管理工具&#xff0c;提供了多种版本和定价方案&#xff0c;以满足不同用户的需求和预算。 也是很多企业的首选工具&#…...

使用C#在目录层次结构中搜索文件以查找目标字符串

例程以递归方式搜索目录层次结构中的文件以查找目标字符串。它可以搜索几乎任何类型的文件&#xff0c;即使它不包含 Windows 理解的文本。例如&#xff0c;它可以搜索 DLL 和可执行文件以查看它们是否恰好包含字符串。 下面的代码中显示的ListFiles 方法完成了大部分工作。 …...

C++设计模式

C设计模式 什么是 C 设计模式&#xff1f;设计模式的用途设计模式的核心原则设计模式的分类 1. 创建型设计模式1.1 单例模式&#xff08;Singleton Pattern&#xff09;1.2 工厂方法模式&#xff08;Factory Method Pattern&#xff09;1.3 抽象工厂模式&#xff08;Abstract F…...

LM芯片学习

1、LM7805稳压器 https://zhuanlan.zhihu.com/p/626577102?utm_campaignshareopn&utm_mediumsocial&utm_psn1852815231102873600&utm_sourcewechat_sessionhttps://zhuanlan.zhihu.com/p/626577102?utm_campaignshareopn&utm_mediumsocial&utm_psn18528…...

使用 MyBatis-Plus Wrapper 构建自定义 SQL 查询

前言 MyBatis-Plus (MP) 是一款基于 MyBatis 的增强工具&#xff0c;它简化了数据库操作&#xff0c;提供了诸如自动分页、条件构造器等功能&#xff0c;极大地提高了开发效率。其中&#xff0c;Wrapper 条件构造器是 MP 的核心功能之一&#xff0c;它允许开发者以链式调用的方…...

C# OpenCvSharp DNN 实现百度网盘AI大赛-表格检测第2名方案第一部分-表格边界框检测

目录 说明 效果 模型 项目 代码 frmMain.cs YoloDet.cs 参考 下载 其他 说明 百度网盘AI大赛-表格检测的第2名方案。 该算法包含表格边界框检测、表格分割和表格方向识别三个部分&#xff0c;首先&#xff0c;ppyoloe-plus-x 对边界框进行预测&#xff0c;并对置信…...

手分割数据集labelme格式505张1类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;505 标注数量(json文件个数)&#xff1a;505 标注类别数&#xff1a;1 标注类别名称:["hands"] 每个类别标注的框数&#xf…...

2012年西部数学奥林匹克试题(几何)

2012/G1 △ A B C \triangle ABC △ABC 内有一点 P P P, P P P 在 A B AB AB, A C AC AC 上的投影分别为 E E E, F F F, 射线 B P BP BP, C P CP CP 分别交 △ A B C \triangle ABC △ABC 的外接圆于点 M M M, N N N. r r r 为 △ A B C \triangle ABC △ABC 的内…...

GB28181系列三:GB28181流媒体服务器ZLMediaKit

我的音视频/流媒体开源项目(github) GB28181系列目录 目录 一、ZLMediaKit介绍 二、 ZLMediaKit安装、运行(Ubuntu) 1、安装 2、运行 3、配置 三、ZLMediaKit使用 一、ZLMediaKit介绍 ZLMediaKit是一个基于C11的高性能运营级流媒体服务框架&#xff0c;项目地址&#xf…...

【微服务】SpringBoot 整合Redis Stack 构建本地向量数据库相似性查询

目录 一、前言 二、向量数据库介绍 2.1 什么是向量数据库 2.2 向量数据库特点 2.3 向量数据库使用场景 三、常用的向量数据库解决方案 3.1 Milvus 3.1.1 Milvus是什么 3.1.2 Milvus主要特点 3.2 Faiss 3.2.1 Faiss是什么 3.2.2 Faiss主要特点 3.3 Pinecone 3.3.1 …...

神州数码DCME-320 online_list.php存在任意文件读取漏洞

免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...

Shadcn UI 实战:打造可维护的企业级组件库

"我们真的需要自己写一套组件库吗&#xff1f;"上周的技术评审会上,我正在和团队讨论组件库的选型。作为一个快速发展的创业公司,我们既需要高质量的组件,又想保持灵活的定制能力。在对比了多个方案后,我们选择了 shadcn/ui 这个相对较新的解决方案。 说实话,最开始…...

C#速成(GID+图形编程)

常用类 类说明Brush填充图形形状,画刷GraphicsGDI绘图画面&#xff0c;无法继承Pen定义绘制的对象直线等&#xff08;颜色&#xff0c;粗细&#xff09;Font定义文本格式&#xff08;字体&#xff0c;字号&#xff09; 常用结构 结构说明Color颜色Point在平面中定义点Rectan…...

CMD使用SSH登陆Ubuntu

1.确认sshserver是否安装好 ps -e | grep sshd 450 ? 00:00:00 sshd 2、如果看到sshd那说明ssh-server已经启动了 其实在/etc/ssh下有一个sshd_config 文件。对这个文件进行修改vim sshd_config。 往文件中添加如下内容&#xff1a; Port 22 Protocol 2 PermitRootLogin yes P…...

Fay环境安装及使用

一、项目源码 代码地址 &#xff1a; Fay 2D数字人源码地址&#xff1a;xuniren LLM用是清华开源的ChatGLM源码地址&#xff1a;ChatGLM-6B 模型地址chatglm2-6b-int4 &#xff08;大模型的安装直接参考了我的另一篇文章&#xff1a;ChatGLM2-6B-int4的…...

重写 `equals` 和 `hashCode` 的一致性

重写 equals 和 hashCode 的一致性 在 Java 中&#xff0c;当我们重写 equals 方法时&#xff0c;通常需要同时重写 hashCode 方法&#xff0c;以确保对象在逻辑上相等时&#xff0c;其哈希值也相等。这是一种重要的契约&#xff08;contract&#xff09;&#xff0c;主要用于…...

【游戏设计原理】14 - MDA:游戏的机制、运行和体验

1. 学习、分析并总结 MDA 原理 MDA (Mechanics, Dynamics, and Aesthetics) 是一种用来分析和理解游戏设计的框架&#xff0c;由 Marc LeBlanc, Robin Hunicke, 和 Robert Zubek 提出。这个框架将游戏分解为三个核心要素&#xff1a; Mechanics&#xff08;机制&#xff09;&…...

鸿蒙Next创建自定义组件总结

一、引言 在鸿蒙Next开发中&#xff0c;自定义组件是构建高效、可维护UI的重要组成部分。它具有可组合、可重用以及数据驱动UI更新等特点&#xff0c;能帮助开发者更好地实现代码复用、业务逻辑与UI分离等目标。本文将详细总结创建自定义组件的相关知识&#xff0c;包括其基本…...

redis 缓存使用

工具类 package org.springblade.questionnaire.redis;import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factor…...

Javascript面试手撕常见题目(回顾一)

1.JS查找文章中出现频率最高的单词? 要在JavaScript中查找文章中出现频率最高的单词&#xff0c;你可以按照以下步骤进行操作&#xff1a; 将文章转换为小写&#xff1a;这可以确保单词的比较是大小写不敏感的。移除标点符号&#xff1a;标点符号会干扰单词的计数。将文章拆…...

lc146LRU缓存——模仿LinkedHashMap

146. LRU 缓存 - 力扣&#xff08;LeetCode&#xff09; 法1&#xff1a; 调用java现有的LinkedHashMap的方法&#xff0c;但不太理解反正都不需要扩容&#xff0c;super(capacity, 1F, true);不行吗&#xff0c;干嘛还弄个装载因子0.75还中途扩容一次浪费时间。 class LRUC…...

【C语言】头文件

所有学习过C语言的朋友都熟悉这样一段代码&#xff1a; #include <stdio.h>int main(int argc, char *argv[]) {return 0; }那么&#xff0c;你真的了解 <stdio.h> 吗&#xff1f; <stdio…...

WSL (Windows Subsystem for Linux)

文章目录 Windows下使用Linux的三种方式&#xff1a;1.WSL(1)安装WSL(2)初始化Linux系统(3)安装、创建、激活 Python虚拟环境 2.虚拟机3.Docker Windows下使用Linux的三种方式&#xff1a; 1.WSL 是最简单的在 Windows 上运行 Linux 环境的方式&#xff0c;适用于日常开发和命…...

[Java] 使用 VSCode 来开发 Java

目录 前言Java 环境怎么看自己是否已经配置完成&#xff1f;安装 JDK安装 Maven 环境修改 Maven 依赖源 完善 VS Code配置插件配置 Maven配置 Maven Settings配置 Maven 可执行文件地址 前言 由于使用 VSCode 编码已经成为习惯&#xff0c;并且它确实相对其他的 IDE 较为轻量化…...

机器学习之偏差

机器学习中的偏差&#xff08;Bias&#xff09;是指模型的预测值与真实值之间的系统性误差&#xff0c;或者说模型无法准确捕捉数据中复杂模式的能力。偏差通常与模型的假设或学习能力有关&#xff0c;过高的偏差会导致模型的性能不佳&#xff0c;表现为欠拟合。 偏差的来源 模…...

微信小程序处理交易投诉管理,支持多小程序

大家好&#xff0c;我是小悟 1、问题背景 玩过微信小程序生态的&#xff0c;或许就有这种感受&#xff0c;如果收到投诉单&#xff0c;不会及时通知到手机端&#xff0c;而是每天早上10:00向小程序的管理员及运营者推送通知。通知内容为截至前一天24时该小程序账号内待处理的交…...

在C#中测试比较目录的不同方法以查看它们有哪些共同的文件

C# 中的示例“比较目录以查看它们有哪些共同的文件”使用Directory.GetFiles获取两个目录中的文件。它对文件进行排序&#xff0c;并比较两个排序后的列表以查看哪些文件位于第一个目录中、第二个目录中或两个目录中。有关其工作原理的详细信息&#xff0c;请参阅该示例。 Kur…...

2D gaussian splatting的配置和可视化

继3D gaussian splatting&#xff0c;2D gaussian splatting除了渲染新视角&#xff0c;还能够生成mesh模型。 2D gaussian splatting的配置 两者的运行环境基本一致 GitHub - hbb1/2d-gaussian-splatting: [SIGGRAPH24] 2D Gaussian Splatting for Geometrically Accurate …...

git分支管理

目录 1.Git分支管理1.1 分支创建1.2 分支删除1.3 分支合并1.4 分支的本质1.5 分支的冲突 2.Git stash2.1 git stash 3.分支管理策略3.1主分支3.2辅助分支3.3Feature分支3.4release分支3.5bugfix分支 1.Git分支管理 Git 的默认分支就是 master。你所作的commit会在master分支上…...

【Elasticsearch入门到落地】4、Elasticsearch的安装

接上篇《3、es与mysql的概念对比》 上一篇我们学习了Elasticsearch与Mysql的概念与区别。本篇我们来进行Elasticsearch的环境准备及软件安装。 一、环境准备 如果我们没有自己的Linux服务器&#xff0c;且现在正在使用的是Windows操作系统的电脑&#xff0c;那么首先我们需要安…...

如何在谷歌浏览器中开启安全浏览

在数字化时代&#xff0c;网络安全变得愈发重要。作为全球最受欢迎的网络浏览器之一&#xff0c;谷歌浏览器提供了多种功能来保护用户的在线安全。本文将详细介绍如何在谷歌浏览器中开启安全浏览&#xff0c;并额外提供一些有用的页面滚动设置、地址栏快捷搜索和跟踪防护的相关…...

短视频矩阵贴牌:打造品牌新势力的策略与实践

在数字化浪潮席卷全球的今天&#xff0c;短视频以其独特的魅力迅速崛起&#xff0c;成为连接用户与品牌的重要桥梁。企业为了快速抢占市场&#xff0c;提升品牌影响力&#xff0c;纷纷探索短视频矩阵贴牌这一新兴模式。本文将深入探讨短视频矩阵贴牌的概念、优势、实施流程及注…...

【潜意识Java】javaee中的SpringBoot在Java 开发中的应用与详细分析

目录 一、前言 二、Spring Boot 简介 三、Spring Boot 核心模块 四、Spring Boot 项目实战&#xff1a;构建一个简单的 RESTful API 1. 创建 Spring Boot 项目 2. 配置数据库 3. 创建实体类 4. 创建 JPA 仓库接口 5. 创建服务层 6. 创建控制器层 7. 测试 API 8. 运…...

linux basics

本篇文章旨在为网络安全初学者介绍linux操作系统基础。通过阅读本文&#xff0c;读者将能够对linux系统有一个初步的了解 一、openssl 1、命令&#xff1a; openssl passwd -1 123 -l参数指定使用MD5加密算法对密码"123"进行加密处理。MD5是一种常用的哈希算法,它将…...

[OpenGL] Transform feedback 介绍以及使用示例

一、简介 本文介绍了 OpenGL 中 Transform Feedback 方法的基本概念和代码示例。 二、Transform Feedback 介绍 1. Transform Feedback 简介 根据 OpenGL-wiki&#xff0c;Transform Feedback 是捕获由顶点处理步骤&#xff08;vertex shader 和 geometry shader&#xff0…...

pytorch_fid 安装笔记

目录 torch安装&#xff1a; pytorch_fid安装 torch安装&#xff1a; pip install torch2.5.0 --index-url https://download.pytorch.org/whl/cu121 pytorch_fid安装 pip install pytorch_fid 安装后&#xff0c;torch也会自动安装&#xff0c;导致torch引用报错。...

SAM大模型实践(一)

参考着segment-geospatial 项目主页的介绍&#xff0c;尝试复现一下Example-satallite的案例。 Satellite - segment-geospatialhttps://samgeo.gishub.org/examples/satellite/ 过程当中遇到了一些坑给大家做点分享&#xff0c;主要有几种情况&#xff0c;一个是torch…...

数据结构 ——前缀树查词典的实现

数据结构 ——前缀树查词典的实现 一、前缀树的概念 前缀树是一种多叉树结构&#xff0c;主要用于存储字符串。每个节点代表一个字符&#xff0c;路径从根节点到叶节点表示一个完整的字符串。前缀树的关键特征是 共享前缀&#xff0c;也就是说&#xff0c;如果两个字符串有相…...

边缘智能创新应用大赛获奖作品系列一:智能边缘计算✖软硬件一体化,开启全场景效能革命新征程

边缘智能技术快速迭代&#xff0c;并与行业深度融合。它正重塑产业格局&#xff0c;催生新产品、新体验&#xff0c;带动终端需求增长。为促进边缘智能技术的进步与发展&#xff0c;拓展开发者的思路与能力&#xff0c;挖掘边缘智能应用的创新与潜能&#xff0c;高通技术公司联…...

修改ubuntu apt 源及apt 使用

视频教程:修改ubuntu apt 源和apt 使用方法_哔哩哔哩_bilibili 1 修改apt源 1.1 获取阿里云ubuntu apt 源 https://developer.aliyun.com/mirror/ubuntu?spma2c6h.13651102.0.0.3e221b11mqqLBC 1.2 修改apt 源 vim /etc/apt/sources.list deb https://mirrors.aliyun.com/ub…...

Kafka 磁道寻址过程详解

前言 Apache Kafka 是一款高吞吐、分布式的消息流平台&#xff0c;广泛应用于实时数据处理和事件驱动系统。在 Kafka 中&#xff0c;消息是存储在磁盘上的&#xff0c;这种高效的数据读写性能得益于 Kafka 独特的磁盘存储架构和寻址机制。本文将从 Kafka 的存储结构、磁道寻址…...

GEE+本地XGboot分类

GEE本地XGboot分类 我想做提取耕地提取&#xff0c;想到了一篇董金玮老师的一篇论文&#xff0c;这个论文是先提取的耕地&#xff0c;再做作物分类&#xff0c;耕地的提取代码是开源的。 但这个代码直接在云端上进行分类&#xff0c;GEE会爆内存&#xff0c;因此我准备把数据下…...

安防监控Liveweb视频汇聚融合平台助力执法记录仪高效使用

Liveweb平台可接入的设备除了常见的智能分析网关与摄像头以外 &#xff0c;还可通过GB28181协议接入执法记录仪&#xff0c;实现对执法过程的全程监控与录像&#xff0c;并对执法轨迹与路径进行调阅回看。那么&#xff0c;如何做到执法记录仪高效使用呢&#xff1f; 由于执法记…...

酷盾安全:Edge SCDN边缘安全内容分发网络

在当今数字化迅猛发展的时代&#xff0c;互联网内容分发的高效与安全成为了企业不可忽视的重要课题。为了满足这一需求&#xff0c;酷盾安全推出了创新的Edge Secure Content Delivery Network&#xff08;Edge Scdn&#xff09;解决方案&#xff0c;它不仅融合了分布式DDoS防护…...