Vue速成学习笔记

news2024/11/24 11:37:55

这两天速成了一下Vue,在这里记录一下相关的笔记,之后有时间详细学Vue的时候再来回顾一下!


一、Vue理解

1、Vue的核心特征:双向绑定。

在网页中,存在视图和数据。在Vue之前,需要使用JavaScript编写复杂的逻辑去操作DOM元素来实现视图和数据的一致性。Vue把这个过程封装了起来,使得我们可以更关心视图和数据之间的关系而不是具体的代码实现,这就是MVVM(Model-View-ViewModel)双向绑定。

View就是用户看到的内容,比如表单,输入框;

Model就是View对应的数据,比如表单展示的内容对应的数据对象,输入框中的内容对应的数据对象;

Vue之前,View展示的数据(用户看到的)和它实际的数据(Model中存储的),这二者的一致性需要程序员使用JavaScript来手动同步。

引入Vue之后,在原来的模式中加入了一个中介——ViewModel。我们只需要告诉ViewModel哪个View和哪个Model对应,当其中一个变化时,另一个就会同步变化,这就是MVVM的核心。

举个例子,页面中有一个表格Table,例如学生的信息表。在Vue之前,如果我们想删除一条记录,需要手动去操作DOM元素让表格呈现的内容发生变化;同理,如果数据库中这个表发生了变化,我们也要去手动修改添加上相关的记录。

使用Vue之后,我们只需要把表格和其对应的数据绑定起来,当用户对视图(表格)进行了修改,变化会自动同步到ViewModel中,之后会自动更新到Model数据库;同理,如果数据库发生了变化,ViewModel也会自动同步相关的逻辑,让用户看到的视图发生变化。

这个过程中对DOM元素的操作对程序员来说就变成透明的了,我们可以更关注怎么去实现好看的视图以及把视图和数据对应地绑定起来,而不必关心怎么对视图和数据进行同步。


2、两个指令和生命周期

①v-bind和v-model是两个重要的指令。

v-bind通常用于单向数据绑定,适用于那些用户不能修改的数据。例如把一个超链接绑定到数据上,那么用户永远只能点这个超链接,而不能去修改它。但是服务器可以通过修改Model来改变这个超链接的URL,从而使得用户打开的页面不同。例如点击某个link时,服务器根据其他的信息来设置这个link具体的URL。

v-model则用于双向绑定,适用于那些用户可以修改内容的视图。例如常见的管理系统,用户可以对表格中的数据进行增删改查,这就要求用户操作完之后,变化要同步到Model中从而使得数据库进行持久化;相应的,如果数据库中的数据发生了变化,这个变化也应该同步到用户所看到的View上。

简单的区别就是:v-bind,View在等Model变化然后自己变化;v-model,View和Model都可以变化并引起对方同步变化。

②Vue的生命周期。

Vue的生命周期共有四段:创建、挂载、更新和销毁。在每一段的前后(before和after)都可以为Vue定义一些行为,称为钩子函数,这样的钩子函数一共有八个。

其中比较重要的是挂载(mounted),当Vue实例被挂载后就会执行这个函数的内容。例如可以设置为展示用户数据的Vue,在挂载好之后即从数据库获取最新的数据并展示。


二、Vue流程

上图是一个新建好的Vue项目框架,这里按照浏览器的访问情况介绍一下Vue的流程。

1、浏览器会首先访问index.html,index.html里面什么也没有,body里只有一个id为app的div。

index.html会默认引入main.js,所以浏览器会在访问index.html执行main.js的相关内容。

2、main.js关键就是:

new Vue({
    router, // ES6: router: router,属性名和属性名之后的名字一样的时候,可以简写为属性名
    render: h => h(App)
}).$mount('#app')
// 1. new Vue({...}) 创建一个Vue实例
// 2. $mount('#app') 将该Vue实例挂载到页面中id为app的元素上,即该实例会替换该元素内的内容
// 3. router是一个路由对象,用于管理页面的路由
// 4. render: h => h(App) 是一个渲染函数,用于指定如何渲染页面,这里的App是一个Vue组件
//   4.1 h(App):调用 h 函数(createElement 函数),传入 App 组件作为参数,这意味着 App 组件将作为根组件被渲染。
//   4.2 Vue 会使用这个组件来构建整个应用程序的 VDOM(虚拟 DOM) 树

也就是说,执行完main.js之后,会有一个Vue实例被挂载到index.html的id为app的div上,即会替换掉它,因此我们所看到的实际上是这个Vue实例中的内容,而这个Vue实例在渲染时使用的是App组件,这个App组件就是我们在上面导入的App.vue。

3、App.vue展示网页的实际内容,它被被导入到main.js,并作为组件被渲染到index.html中。

总结:流程就是:index.html->main.js->App.vue。我们看到的实际上是App.vue的内容。

我们之后的前端工程化开发就是在App.vue里面放我们自己写的vue,从而完成前端的视图展示和其与数据的同步。


三、ElementUI

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

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

相关文章

电脑同时配置两个版本mysql数据库常见问题

1.配置时,要把bin中的mysql.exe和mysqld.exe 改个名字,不然两个版本会重复,当然,在初始化数据库的时候,如果时57版本的,就用mysql57(已经改名的)和mysqld57 代替 mysql 和 mysqld 例如 mysql -u root -p …

Redis(十二) 持久化

文章目录 前言Redis实现数据的持久化Redis实现持久化的策略RDB手动触发RDB持久化操作自动触发RDB持久化操作 AOFAOF重写机制 前言 众所周知,Redis 操作数据都是在内存上操作的,而我们都知道内存是易失的,服务器重启或者主机掉电都会导致内存…

面试八股之MySQL篇4——事务篇

🌈hello,你好鸭,我是Ethan,一名不断学习的码农,很高兴你能来阅读。 ✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。 🏃人生之义,在于追求,不在成败,勤通…

生命线上的高效传递:了解下医院内、外网文件交互方式的革新之路

在医院的日常运营中,普遍采用内外网隔离的建设方式。内网集信息管理、通讯协作、资源共享、业务流程管理于一身,承载了医院的医疗核心业务,如HIS(医院信息系统)、LIS(实验室信息系统)、EMR&…

如何灵活运用keil工具进行问题分析(1)— 解决日常程序卡死问题

前言 (1)如果有嵌入式企业需要招聘湖南区域日常实习生,任何区域的暑假Linux驱动实习岗位,可C站直接私聊,或者邮件:zhangyixu02gmail.com,此消息至2025年1月1日前均有效 (2&#xff0…

山脉数组的峰顶索引 ---- 二分查找

题目链接 题目: 分析: 我们很明显, 可以从峰值位置将数组分成两段, 具有"二段性", 所以可以用二分查找因为arr是山峰数组, 不存在相等的情况如果arr[mid] > arr[mid 1], 说明mid的位置可能是峰值, 移动right mid如果arr[mid] < arr[mid 1], 说明mid的位置…

Java基础之异常(简单易懂)

异常 1.JAVA异常体系 &#xff08;1&#xff09;Throwable类(表示可抛)是所有异常和错误的超类&#xff0c;两个直接子类为Error和Exception,分别表示错误和异常;其中异常类Exception又分为运行时异常和非运行时异常&#xff0c;这两个异常有很大区别&#xff0c;运行时异常也…

【分享笔记】符尧:预训练、指令微调、对齐、专业化——论大语言模型能力的来源

分享时间&#xff1a;2023.2 目录 模型家族scaling law和涌现能力模型不同阶段pretrainingintruction tuningalignment upper bound和lower bound 模型家族 看模型要从演化家族来看&#xff0c;而不能单独看&#xff0c;很多人认为一些能力并不是RLHF激发出来的&#xff0c;而…

【区块链】智能合约漏洞测试

打开Ganache vscode打开智能合约漏洞工程 合约内容 pragma solidity >0.8.3;contract EtherStore {mapping(address > uint) public balances;function deposit() public payable {balances[msg.sender] msg.value;emit Balance(balances[msg.sender]);}function with…

前端工程化07-常见的包管理工具npm、yarn、cnpm、npx、pnpm

8、包管理工具 8.1、包管理工具概述 npm包管理工具、在安装node的时候这个东西就已经安装过了&#xff0c;通过npm去管理包的时候这个时候回有一个配置文件叫做package.json,他是以json的方式来书写对应的一个配置文件&#xff0c;这个配置文件是可以添加特别多的一些字段的&…

d3dx9_41.dll是个什么东西?d3dx9_41.dll文件丢失的解决方法

随着软件技术的不断发展&#xff0c;电脑用户可能会遇到各种系统错误和问题&#xff0c;其中之一就是动态链接库&#xff08;DLL&#xff09;文件的丢失。d3dx9_41.dll文件丢失是一个常见的问题&#xff0c;它通常会在运行依赖于DirectX图形技术的游戏或应用程序时被报告。这个…

MySQL中如何知道数据库表中所有表的字段的排序规则是什么?

查看所有表的字段及其排序规则&#xff1a; 你可以查询 information_schema 数据库中的 COLUMNS 表&#xff0c;来获取所有表的字段及其排序规则。以下是一个示例查询&#xff1a; SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLLATION_NAME FROM information_schema.COL…

影视解说5.0版零基础视频课程

课程简介 现在还能做解说吗、不会写解说文案怎么解决、不会配音怎么解决、如何找到合适的素材资源、如何变现…这是很多想做解说的伙伴最关心的几大问题。比如文案&#xff0c;我们推荐一个网站&#xff0c;10分钟搞定一篇文案&#xff0c;配音可以真人配音也可以软件配音。5.…

Windows11的这个地方暴露着你的隐私,把它关掉避免尴尬

前言 现在的电脑真的是越来越智能化&#xff01;现在有很多小伙伴都是用着Windows11的吧&#xff01;用习惯了Windows11之后&#xff0c;突然发现它还是挺顺手的。 但不知道你有没有发现&#xff0c;Windows11上面有个地方暴露着你的隐私。这个隐私可能是某个小姐姐的图片&am…

Android 12系统源码_多窗口模式(二)系统实现分屏的功能原理

前言 上一篇我们具体分析了系统处于多窗口模式下&#xff0c;Android应用和多窗口模式相关方法的调用顺序&#xff0c;对于应用如何适配多窗口模式有了一个初步的认识&#xff0c;本篇文章我们将会结合Android12系统源码&#xff0c;具体来梳理一下系统是如何触发多窗口分屏模…

StringMVC

目录 一&#xff0c;MVC定义 二&#xff0c;SpringMVC的基本使用 2.1建立连接 - RequestMapping("/...") ​编辑 2.2请求 1.传递单个参数 2.传递多个参数 3.传递对象 4.参数重命名 5.传递数组 6. 传递集合 7.传递JSON数据 8. 获取url中数据 9. 传递文…

mysql实战——异步复制(gtid复制)

一、搭建前准备 主库 192.168.1.76 从库 192.168.1.78 二、搭建 1、编辑配置文件 主库 server-id76 gtid_modeon enforce_gtid_consistencyon log_binmaster-binlog log-slave-updates1 binlog_formatrow 从库 gtid_modeon enforce_gtid_consistencyon server_id7…

huggingface笔记:LLama 2

1 前提tip 1.1 使用什么数据类型训练模型&#xff1f; Llama2模型是使用bfloat16训练的 上传到Hub的检查点使用torch_dtype float16&#xff0c;这将通过AutoModel API将检查点从torch.float32转换为torch.float16。在线权重的数据类型通常无关紧要&#xff0c;这是因为模型…

基于springboot+vue+Mysql的校园台球厅人员与设备管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

在docker中运行SLAM十四讲程序

《十四讲》的示例程序依赖比较多&#xff0c;而且系统有点旧。可以在容器中运行。 拉取镜像 docker pull ddhogan/slambook:v0.1这个docker对应的github&#xff1a;HomeLH/slambook2-docker 拉下来之后&#xff0c;假如是Windows系统&#xff0c;需要使用XLaunch用于提供X11…