Vue2基础总结

news2024/12/23 10:08:17

知识点学了太多还是需要总结复习,否则后面会因为零碎的知识点而感到繁杂,那么今天我来总结一下vue相关的知识点,新学习vue的朋友也可以把这当做一个细致总结:

1.Vue是什么(重点):

对于Vue的总结,最重要的地方是它为一个渐进式的视图(view)模板引擎,在vue中通过添加组件系统、客户端路由、大规模状态管理来构建一个完整的框架。这些功能相互独立,不一定要全部用在一起,用什么拿什么么,这里所说的“渐进式”,其实就是Vue的使用方式。

编写方式通俗来说哦就是自底向上,从基层做起,然后向上逐渐添加效果和功能。

2.基础语法:

基础语法有两种,插值语法和指令语法。

1.插值语法:双大括号形式,用于解析标签体内容:{{msg}} msg:为表达式。

举例:页面上有一个节点(注意vue中只有一个id为root的div节点),new Vue中的data值直接用双大括号插入节点当中:

<div id="root">{{hello}}</div>

<script src="vue.js"></script>
    
<script>
    new Vue({
      el: "#root",
      data: {
        hello: "helloworld!",
      },
    });
</script>

2.指令语法:vue中有很多指令,他们用于解析标签属性、解析标签体内容、绑定事件,以v-开头

举例:这里用v-bind:href = “url” 举例,式子中url为表达式,具有返回值

<div id="root">
    <a v-bind:href="url">去淘宝</a>
    <!-- v-bind:href简写 -->
    <a :href="url">去淘宝</a>
</div>

<script src="vue.js"></script>

<script>
    new Vue({
      el: "#root",
      data: {
        url: "https://www.taobao.com/",
      },
    });
</script>

以上是vue中的两种基础语法。

3.数据绑定

数据绑定分为两种,单向数据绑定和双向数据绑定,顾名思义,单向数据绑定中数据只会从data中流向页面,而双向数据绑定不仅data的值可以流向界面,页面的值也可以流向data。

写法举例:

1.单向数据绑定:单向绑定v-bind:数据只能从data流向页面,data中是什么值,页面上就是什么值:

<div id="root">
  <input type="text" name="" :value="msg" />
</div>
<script src="vue.js"></script>
<script>
  Vue.config.productionTip = false;
  new Vue({
    el: "#root",
    data: {
      msg: "张三",
    },
  });
</script>

2.双向数据绑定:双向绑定v-model:数据不仅能从data流向页面,还可以从页面流向data:

<div id="root">
<input type="text" name="" v-model:value="msg"/>
</div>
<script src="vue.js"></script>
<script>
	Vue.config.productionTip = false;
		new Vue({
			el:"#root",
			data:{
				msg:"张三"
			}
		})
</script>

双向数据绑定不仅可以实现数据从data流向页面,也可以实现在页面中修改数据的时候,数据也会传到data中。

注意:v-model:value 可以简写为 v-model,v-model一般应用于输入类型的表单元素。

4.M-V-VM模型和数据代理

M-V-VM分别代表了1.M模型(Model) :data中的数据 ,2.V视图(View) :模板代码,3.VM:视图模型(ViewModel):Vue实例。

 如上图所示,M和V分别代表数据波形和页面视图,那么就需要一个桥梁连通它们,所以VM就相当于连接它们的桥梁。

所以VM就相当于我们上方写的一个new Vue的实例,具体写法如下:

<div id="root">
  <input type="text" name="" v-model:value="msg" />
</div>
<script src="vue.js"></script>
<script>
  Vue.config.productionTip = false;
  const vm = new Vue({
    el: "#root",
    data: {
      msg: "张三",
    },
  });
</script>

在这不得不提到一个名词叫做响应式原理,但是响应式原理在这里,三言两语说不清楚,希望大家可以在网上搜寻详细的资料看一下,充分理解响应式原理。

而Vue中数据代理的原理就是通过Object.defineProperty()把data对象中所有属性添加到vm上。为每一个添加到vm上的属性,都指定一个getter/setter去操作(读/写)data中对应的属性。

举个例子,我们创建了两个对象,想把一个对象其中的值在另一个对象中输出应该怎么做,在这里就应该用到数据代理:

<div id="root">
  <input type="text" name="" v-model:value="msg" />
</div>
<script src="vue.js"></script>
<script>
  Vue.config.productionTip = false;
  const p1 = {
    age: 19,
  };
  const p2 = {
    name: "mike",
  };
  Object.defineProperty(p2, "age", {
    get() {
      return p1.age;
    },
    set(v) {
      p1.age = v;
    },
  });
  console.log(p2.age);
</script>

Object.defineProperty()这个函数中,用到get和set方法,get用来获取p1里面需要的值,set用来设置一个值等于获得的那个值,然后把设置的这个值放到p2中,最后输出p2.age即可完成我们想要的结果。

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

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

相关文章

创建 Vue3.0 工程

1.使用 vue-cli 创建 官方文档 : https://cli.vuejs.org/zh/guide/creating-a-project.html#vue-create // 查看vue/cli版本&#xff0c;确保vue/cli版本在4.5.以上 vue --version vue -V// 安装或者升级你的vue/cli、 覆盖安装最新版本; npm install -g vue/cli//1.创建…

C++初阶 stack和queue的模拟实现

作者&#xff1a;小萌新 专栏&#xff1a;C初阶 作者简介&#xff1a;大二学生 希望能和大家一起进步&#xff01; 本篇博客简介&#xff1a;模拟实现STL库中的stack和queue 考试周结束咯 狠狠的学&#xff01; stack和queue的模拟实现容器适配器Stack模拟实现接口函数一览代码…

艾美捷西妥昔单抗Cetuximab化学性质和文献参考

西妥昔单抗&#xff08;抗EGFR&#xff09;是表皮生长因子受体&#xff08;EGFR&#xff09;的抑制剂。 艾美捷西妥昔单抗Cetuximab 品名&#xff1a;西妥昔单抗&#xff0c;抑制剂 完整名称&#xff1a;西妥昔单抗&#xff08;抗EGFR&#xff09; 同义词名称&#xff1a;C2…

2022年电动车与车辆工程国际会议(CEVVE 2022)

2022年电动车与车辆工程国际会议&#xff08;CEVVE 2022&#xff09; 重要信息 会议网址&#xff1a;www.cevve.org 会议时间&#xff1a;2022年12月19-21日 召开地点&#xff1a;中国北海 截稿时间&#xff1a;2022年12月15日 录用通知&#xff1a;投稿后2周内 收录检索…

CPU、内存占用率高排查

CPU高占用 排查思路 top 命令查看CPU占用率高的进程top -H -p ${pid} 命令查看具体是进程的哪个线程占用CPUprintf ‘%x\n’ ${pid} 将线程的pid转为16进制jstack ${十六进制pid} | grep -A 20 查看线程的基本信息与方法调用栈 模拟排查 [rootVM-24-5-centos www]# top top…

vue可视化管理工具创建项目报错解决errno: -4058;连接超时

vue可视化管理工具创建项目报错解决errno: -4058 简介&#xff1a;vue创建项目时&#xff0c;errno&#xff1a;-4058问题解决&#xff0c;使用vue ui指令时会报连接超时问题解决。 基础材料&#xff1a; 使用的node.js版本&#xff1a;18.12.1 vue版本&#xff1a;4.5.15…

【shell脚本】监控磁盘/内存使用率·检测域名是否正常·一键部署LMNP·拉黑攻击服务器的异常ip

文章目录1、监控2台服务器硬盘利用率脚本实战2、批量检查 5个网站域名是否正常3、统计磁盘使用率&#xff0c;磁盘大于%5 就打印mail 小于 硬盘正常 内存也是一样4、有人攻击我服务器 就拉黑异常ip5、使用for循环安装 批量安装3台服务器 php环境 使用&#xff08;LAMP&#xff…

Web前端开发技术课程大作业:简单的网页制作期末作业——狐妖小红娘(6页)

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…

PM说 | 如何精准的获取用户需求?需求分析到底分析什么?

如何精准获取用户需求&#xff1f;怎么做好需求分析? 文章目录如何精准获取用户需求&#xff1f;怎么做好需求分析?前言一、用户的正在需求是什么二、如何精准的获取用户需求三、实操项目分析四、需求分析的方法总结前言 不知你是否曾遇到这样的处境&#xff0c;听到需求&am…

多线程~实现多线程

实现多线程 进程&#xff1a;是正在运行的程序 是系统进行资源分配和调用的独立单位每一个进程都有它自己的内存空间和系统资源 线程&#xff1a;是进程中的单个顺序控制流&#xff0c;是一条执行路径 单线程&#xff1a;一个进程如果只有一条执行路径&#xff0c;则称为单…

小游戏开发指南及过程中的难点问题

如果仅仅针对个人开发者来讲&#xff0c;要独立开发一款大型游戏几乎无可能&#xff0c;更大成功的可能还是开发一款类似《羊了个羊》这样洗脑的小程序游戏。 所以这里主要论述小游戏开发的情况&#xff0c;也就是小程序游戏&#xff0c;首先从小游戏的开发流程来看&#xff1…

chatGPT:12.12 之后更新的 chatGPT 的本地部署和接口调用,解决 response 403 (无法连接openai服务器)问题

文章目录问题源代码改动Session token 的获取cf_clearance 的获取user-agent 的获取将 config.json.sample 内容修改并移动位置附注&#xff1a;环境配置python > 3.7特别提示playwright & cf_clearancerevChatGPT 版本httpxOpenAIAuth删除 import 中的错误后记问题 因…

web网页设计期末课程大作业:基于HTML+CSS+JavaScript个人书画作品展示HTML模板(6页)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

Matlab论文插图绘制模板第69期—带误差棒的折线图(Errorbar)

在之前的文章中&#xff0c;分享了一系列Matlab折线图的绘制模板&#xff1a; 这一次&#xff0c;再来分享一种特殊的折线图&#xff1a;带误差棒的折线图。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;Matlab论文插图绘制模板系列&#xff0c;旨在降低大家使用Matl…

C语言判断一个整数是不是素数(质数)、求100以内的所有素数、求前50个素数

目录 一.什么是素数&#xff08;质数 Prime&#xff09; 二.判断一个整数是不是素数&#xff08;质数&#xff09;代码 三.求100以内的所有素数&#xff08;质数&#xff09; 四.输出前50个素数&#xff08;质数&#xff09; 一.什么是素数&#xff08;质数 Prime&#xff0…

5、metasploit信息搜集

一、概念 针对目标在开放端口、以及运行的服务进行探测。portscan端口扫描mysql安全测试服务版本确定密码嗅探SNMP探测二、metasploit中信息搜集模块 2.1、use auxiliary/gather/ 与 use auxiliary/scanner/ 2.2、针对SMB版本探测&#xff08;默认445端口&#xff09; 也可以探…

vTESTstudio入门到精通 - CANoe工程导入vTESTstudio_02

前面我们已经讲完了如何配置出来一个vTESTstudio工程,并且编译成一个可执行的文件,接下来我们就是要把这块可执行文件导入到CANoe中,通过CANoe工程来执行我们编译的脚本,实现对应功能的测试,今天就是给大家分享如何导入。 二、CANoe工程导入vTESTstudio执行文件 1、创建一…

猿如意中的【blender】工具详情介绍

文章目录一、工具名称二、下载安装渠道2.1 什么是猿如意&#xff1f;2.2 如何下载猿如意&#xff1f;三、工具介绍四、blender介绍4.1 blender简介4.2 背景4.3 主要功能五、软件安装过程5.1 如何在猿如意中下载开发工具blender&#xff1f;5.2 下载blender软件截图5.3 blender安…

基于51单片机的数字电压表设计

程序运行图&#xff1a; 仿真原理图&#xff1a; 部分程序&#xff1a; #define LED_GLOBAL 1 #include "led.h" void ledDelay(uint ms) { uchar delayi; while(--ms) { for(delayi0;delayi<124;delayi); } } void init_led(void) { LEDsegLedCode[0]; L…

四、JavaScript——基本语法

1.注释 <script>/*1.多行注释*///2. 单行注释</script> 2.大小写 JS严格区分大小写 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"…