Vue学习笔记(一)

简介: Vue学习笔记

数据绑定

v-model是实现数据双向绑定,页面发生变化,name也会发生变化;name发生变化,页面也会发生变化

<input type='text' v-model="name">

:value是实现单向绑定,name发生变化,页面就会发生变化;但是页面发生变化,name并不会发生变化

<input type='text' :value="name">

脚手架Vue CLI

在想要创建工程的目录里面输入下面内容,创建hello工程

vue create hello

选择第三个,手动选择。因为eslint暂时用不到

下一步,安空格取消掉Linter,然后按回车下一步

然后选择vue3

依赖存哪里去,一般选择package.json

是否要生成一个快照,用于后续快速创建项目

接下来就生成了vue工程

通过npm run serve运行

组件

组件化开发

需要安装的插件

装了插件才有高亮

自定义组件

定义自己的组件

在compoents目录下新建一个MyHello.vue

然后添加基本内容,定义组件名为MyHello

使用自定义的组件

接着执行npm run serve, 便可以发现组件生效了

普通组件–局部注册

局部注册,只写组件名也可以,是一种简写方法

创建一个新的vue,输入

生成后的效果

使用流程:创建组件–导入–注册–使用

普通组件–全局注册

在多个界面都要使用的通用组件可以进行全局注册,这样全局都能使用了

全局组件在main.js中进行注册

在完成组件创建后,在main.js中导入,然后全局注册即可.

全局注册完成之后,在所有的组件范围内都可以使用

普通组件的局部注册和全局注册的区别

第三方组件Element-ui

computed 计算属性

比如下面篮球数量进行更新了,礼物总数也会自动重新计算

一般属性是放data里面,而计算属性要放computed里面,并写成函数的样子

computed与methods区别

特点是computed的缓存机制,只有依赖数据变化才会重新计算,数据不变情况下,即使网页刷新也不会重复计算的。性能比较高

修改计算属性

一般情况下,计算属性是不可修改的

如果想要修改计算属性,应该将computed中的函数写法,改写成类的写法,并要有get和set两个方法

如果要实现修改,需要在set里面对依赖数值进行修改,应该将’吕‘给this.firstName,把’小布’给this.lastName。

set的本质是修改了依赖数值,然后触发了get

watch 侦听器

注意:

在js中,方法名不能直接出现 点.这种特殊字符的,需要加上引号

’对象.属性名‘

延时器防抖

如果数据频繁变化,后台计算会比较频繁,因此可以设置延迟器。但这种情况下只会延迟执行,但是仍然都会执行;因此再次变化的时候可以删除延迟器,添加新的延迟器,进行重新计时。

这样就可以在变化停止时,进行更新。实现防抖的功能。

(与页面无关的数据,直接绑定在this对象里面,无需额外在data里面声明timer)

watch 的完整写法

比如除了监听obj中words还要监听语言,那么就要声明deep:true,监听对象obj里面的每个属性。

(如果直接监听两个,就太麻烦了,特别是数量是3个、4个…的时候)

但是handler只会在数据修改的时候才会触发,为了使得一进页面就修改一次,可以使用immediate:true

例子:

scoped样式冲突

如下图所示,这是组件的vue,只是想给BaseOne加上样式,但是所有的div都加上了样式

为了使得样式只作用于当前组件,就需要加上scoped

组件还是推荐加scoped的,因为组件应该有自己的样式,而不应该作用于全局

scoped原理(了解)

加上scoped,会给当前组件内所有元素,都添加一个哈希值,div组件名改成了 div-哈希值,因此不同组件内的div不会发生样式冲突了

组件通信

子组件给父组件通信$emit

父组件给子组件通信prop

prop

限制使用组件的人,防止他们乱传参数。

类型校验(比如下方的进度条应该传入一个数值,如果传入一个布尔值,那就应该出错)

可以通过写成对象的方式,进行更加详细的校验

如果想要修改prop值,需要子组件通知父组件去修改。直接修改prop会报错。

v-model原理

两条"

v-model还要仔细看

.sync

子组件要通知父组件修改的时候,需要 通过emit实现,并补上update:字段

简单得说,加上.sync,相当于不用额外再去写触发事件了,子组件可以直接通过emit实现,是一种语法糖。

vue调试工具

参考链接

ref和refs

异步更新和$nextTick

在vue中,是要等这一段程序操作完才更新dom,这时候直接去获取焦点,是还没更新的,因此要异步去操作。

输入框获取焦点:就是光标闪烁在输入框

正确写法,$nextTick会等dom更新完后,再去获取焦点。

路由

单页应用和多页应用的区别

路由的基本使用

注意安装得时候Vue2 安装vueRouter3.x vuex3.x

Vue3安装vueRouter4.x vuex4.x

注入完成后,就能在url中看到/#/的字符了

把用于显示的文件放在views目录里面

组件存放目录问题

路由模块封装

这样在main.js中只要import,以及在new Vue中加入router即可

把路由相关内容写在router/index.js里面。注意封装后,路径改变,要进行修改,否则找不到views。

但是每次移动文件位置都要改路径很麻烦,因此可以将相对路径改为绝对路径,其中@表示src目录(但不能直接写成src)


Vue学习笔记(二)https://developer.aliyun.com/article/1418880

相关文章
|
18天前
|
JavaScript
Vue中如何实现兄弟组件之间的通信
在Vue中,兄弟组件可通过父组件中转、事件总线、Vuex/Pinia或provide/inject实现通信。小型项目推荐父组件中转或事件总线,大型项目建议使用Pinia等状态管理工具,确保数据流清晰可控,避免内存泄漏。
152 2
|
4月前
|
人工智能 JavaScript 算法
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
584 0
|
4月前
|
JavaScript UED
用组件懒加载优化Vue应用性能
用组件懒加载优化Vue应用性能
|
3月前
|
JavaScript 安全
在 Vue 中,如何在回调函数中正确使用 this?
在 Vue 中,如何在回调函数中正确使用 this?
121 0
|
3月前
|
人工智能 JSON JavaScript
VTJ.PRO 首发 MasterGo 设计智能识别引擎,秒级生成 Vue 代码
VTJ.PRO发布「AI MasterGo设计稿识别引擎」,成为全球首个支持解析MasterGo原生JSON文件并自动生成Vue组件的AI工具。通过双引擎架构,实现设计到代码全流程自动化,效率提升300%,助力企业降本增效,引领“设计即生产”新时代。
258 1
|
4月前
|
JavaScript 前端开发 开发者
Vue 自定义进度条组件封装及使用方法详解
这是一篇关于自定义进度条组件的使用指南和开发文档。文章详细介绍了如何在Vue项目中引入、注册并使用该组件,包括基础与高级示例。组件支持分段配置(如颜色、文本)、动画效果及超出进度提示等功能。同时提供了完整的代码实现,支持全局注册,并提出了优化建议,如主题支持、响应式设计等,帮助开发者更灵活地集成和定制进度条组件。资源链接已提供,适合前端开发者参考学习。
379 17
|
4月前
|
JavaScript 前端开发 UED
Vue 表情包输入组件实现代码及详细开发流程解析
这是一篇关于 Vue 表情包输入组件的使用方法与封装指南的文章。通过安装依赖、全局注册和局部使用,可以快速集成表情包功能到 Vue 项目中。文章还详细介绍了组件的封装实现、高级配置(如自定义表情列表、主题定制、动画效果和懒加载)以及完整集成示例。开发者可根据需求扩展功能,例如 GIF 搜索或自定义表情上传,提升用户体验。资源链接提供进一步学习材料。
215 1
|
4月前
|
JavaScript API 开发者
Vue框架中常见指令的应用概述。
通过以上的详细解析,你应该已经初窥Vue.js的指令的威力了。它们是Vue声明式编程模型的核心之一,无论是构建简单的静态网站还是复杂的单页面应用,你都会经常用到。记住,尽管Vue提供了大量预定义的指令,你还可以创建自定义指令以满足特定的需求。为你的Vue应用程序加上这些功能增强器,让编码变得更轻松、更愉快吧!
74 1
|
4月前
|
存储 JavaScript 前端开发
如何高效实现 vue 文件批量下载及相关操作技巧
在Vue项目中,实现文件批量下载是常见需求。例如文档管理系统或图片库应用中,用户可能需要一次性下载多个文件。本文介绍了三种技术方案:1) 使用`file-saver`和`jszip`插件在前端打包文件为ZIP并下载;2) 借助后端接口完成文件压缩与传输;3) 使用`StreamSaver`解决大文件下载问题。同时,通过在线教育平台的实例详细说明了前后端的具体实现步骤,帮助开发者根据项目需求选择合适方案。
329 0
|
4月前
|
JavaScript 前端开发 UED
Vue 项目中如何自定义实用的进度条组件
本文介绍了如何使用Vue.js创建一个灵活多样的自定义进度条组件。该组件可接受进度段数据数组作为输入,动态渲染进度段,支持动画效果和内容展示。当进度超出总长时,超出部分将以红色填充。文章详细描述了组件的设计目标、实现步骤(包括props定义、宽度计算、模板渲染、动画处理及超出部分的显示),并提供了使用示例。通过此组件,开发者可根据项目需求灵活展示进度情况,优化用户体验。资源地址:[https://pan.quark.cn/s/35324205c62b](https://pan.quark.cn/s/35324205c62b)。
141 0

热门文章

最新文章