前端基础-VUE入门教程(一)

article/2025/10/26 3:36:13

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、VUE简介
    • 1.1 搭建Vue开发环境
    • 1.2 初始Vue
    • 1.3 Vue模板语法
    • 1.4 数据绑定
    • 1.5 el和data的两种写法
    • 1.6 MVVM模型
    • 1.7 数据代理
      • Object.defineProperty方法
      • Vue中的数据代理
  • 总结


前言

学习背景

由于作者之前虽然上手了Vue项目,但实际上并没有系统学习过Vue相关基础知识,对其中的原理理解得不够深刻,因此作者目前在看尚硅谷有关Vue的系列教程,并通过博客的形式将所学习的知识点进行记录,便于他人快速上手学习和自身复习~


一、VUE简介

vue:一套用于构建用户界面的渐进式框架。

特点:

  1. 采用组件化模式,提高代码复用率,且让代码更好维护;
  2. 声明式编码,让编码人员无需直接操作DOM,提高开发效率;
  3. 使用虚拟DOM+Diff算法,尽量复用DOM节点

1.1 搭建Vue开发环境

打开Vue官网,安装部分我们可以看到有开发版本和生产版本两种:开发版本适合在开发过程中使用,包含完整的警告和调试模式;生产版本适合在项目完成上线时使用,较为轻量级。
在这里插入图片描述
下载下来,分别是vue.js和vue.min.js文件:
在这里插入图片描述
可以通过下面代码使用vue:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>初始Vue</title><script src="vuejs/vue.js"></script>
</head><body></body></html>

但通常会出现以上报错:
在这里插入图片描述

  • 错误一是因为没有下载Vue Devtools拓展工具,可以去谷歌商店下载安装拓展程序;
  • 错误二是因为提醒你使用的是开发版本,当项目上线时使用生产版本。

输入vue.config可以看到以下全局配置信息:
在这里插入图片描述

productionTip属性为boolean类型,设置为false以阻止vue在启动时生成生产提示
添加以下代码,错误二提示即可消失:

    <script>Vue.config.productionTip = false;</script>

1.2 初始Vue

以下是一个使用vue的简单示例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="js/vue.js"></script>
</head>
<body><div id="root"><h1> Hello {{name}}</h1></div><script type="text/javascript">Vue.config.productionTip = false;new Vue({el: '#root', // 指定当前Vue示例为哪个容器服务,值通常为CSS选择器字符串data: {     // data中用于存储数据name:'lalala'}})</script>
</body>
</html>

注意事项:

  1. 想让vue工作,就必须先创建一个实例,且要传入一个配置对象
  2. root容器中的代码依然复合html规范,只不过混入特殊的Vue语法
  3. root容器中的代码称为vue模板;
  4. Vue实例和容器是一一对应的;
  5. 真实开发中只有一个Vue实例,并且配合着组件一起使用
  6. {{XXX}}里面的XXX要写js表达式,且XXX可以自动读取到data中所有属性
  7. 一旦data中的数据发生改变,那么页面中用到数据的地方会自动更新

效果图如下:
在这里插入图片描述

1.3 Vue模板语法

Vue模板语法有2大类:

  1. 插值语法
    功能:用于解析标签体内容
    写法:{{XXX}},XXX是js表达式,且可以直接读取到data中的所有属性
  2. 指令语法
    功能:用于解析标签(包括:标签属性、标签体内容、绑定事件。。。)
    举例:v-bind:herf=“XXX” 或简写为 :herf=“XXX”,XXX同样要写js表达式,且可以直接读取到data中的所有属性

1.4 数据绑定

使用v-bind和v-model指令如下所示:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="js/vue.js"></script>
</head>
<body><div id="root"><h1> Hello {{name}}</h1>单向数据绑定:<input type="text" name="" id="" v-bind:value="name">双向数据绑定:<input type="text" name="" id="" v-model:value="name"></div><script type="text/javascript">Vue.config.productionTip = false;new Vue({el: '#root', // 指定当前Vue示例为哪个容器服务,值通常为CSS选择器字符串data: {     // data中用于存储数据name:'lalala'}})</script>
</body>
</html>

在这里插入图片描述

  • 打开开发者工具,选择vue,可以看到Root组件,点击Root即可看到绑定的数据
    在这里插入图片描述
  • 当修改数据时,可以注意到两个数据绑定指令都能成功更新数据;
    在这里插入图片描述
    在这里插入图片描述
  • 当在v-bind对应的输入框中修改数据时,可以看到data绑定的数据没有发生改变;
    在这里插入图片描述
  • 然而当在v-model所对应的的文本输入框中修改数据时,可以看到data绑定的数据相应地发生变化,并且其他使用data数据的地方跟着发生改变。

在这里插入图片描述

总结如下:

Vue有两种数据绑定的方式:

  1. 单向绑定(v-bind):数据只能从data流向页面
  2. 双向绑定(v-model):数据不仅能从data流向页面,还能从页面流向data
    注意:双向绑定一般都应用于表单类元素上(如:input、select等)
    v-model:value=“XXX” 可以简写为v-model=“XXX”,因为v-model默认收集的是value值

1.5 el和data的两种写法

在控制台打印创建的Vue实例,可以看到以下信息:
在这里插入图片描述

  • $符号后面是我们实例所对应的可以使用的属性,找到Vue原型所对应的的属性,如下所示:
    在这里插入图片描述
    除了使用el指定Vue实例为哪个容器服务时,还可以使用如下语句:
    <script type="text/javascript">Vue.config.productionTip = false;const v = new Vue({// el: '#root', // 指定当前Vue实例为哪个容器服务,值通常为CSS选择器字符串data: {     // data中用于存储数据name:'lalala'}})v.$mount('#root');</script>
  • data也有以下两种写法:对象式和函数式;
// 第一种:对象式data: {    name:'lalala'}// 第二种:函数式data: function() {return{name:'lalala'}}

注意:采用函数式方法时,data函数可以将:function省略,注意不要使用箭头函数:当前写法this对应的vue实例,如果采用箭头函数的写法,所对应的的this是window。

1.6 MVVM模型

  1. M:模型(Model):对应data中的数据
  2. V:视图(View):模板
  3. VM:视图模型(ViewModel):Vue实例对象

1.7 数据代理

Object.defineProperty方法

  • 如果想给person对象增加age属性,可以使用Object.defineProperty方法,相比于直接添加,需要设置enumerable、writable、configurable属性才能被枚举、修改和删除;
  • 如果想把number与age绑定,当number的值变化时,age所对应的值变化;同时当age所对应的值改变时,number所对应的的值也发生改变,此时需要使用getter和setter方法。
		let number = 19;let person = {name: '张三',sex: '男'// age: number}Object.defineProperty(person, 'age', {value: 18,enumerable: true,   // 控制属性是否可以被枚举writable: true,     // 控制属性是否可以被修改configurable: true,    //  控制属性是否可以被删除get() {return number;}, set(value) {number = value;}}) 

- 数据代理:通过一个对象代理对另一对象中属性的操作
简单的示例如下:

        let obj = {x: 100};let obj1 = {y: 200};Object.defineProperty(obj1, 'x', {get() {return obj.x;},set(value) {obj.x = value;}})

Vue中的数据代理

打印vm实例,可以看到也是通过getter和setter来进行数据代理:
在这里插入图片描述
在这里插入图片描述

实际上Vue数据代理的具体原理如下:

在这里插入图片描述
不难找到Vue实例中的_data属性,确实存储了data的相关数据,之后通过在Vue实例中创建相应的属性,通过Object.defineProperty完成数据代理。
在这里插入图片描述


总结

本文主要总结了Vue实例创建、模板语法、数据绑定、MVVM模型、数据代理等相关知识。


http://chatgpt.dhexx.cn/article/GLphr4gI.shtml

相关文章

web前端开发基础入门篇(一)

1、什么是web&#xff1f; www是环球信息网的缩写&#xff0c;&#xff08;亦作“web”、“www”、“w3 ”&#xff0c;全称为“World Wide Web”&#xff0c;中文名字是“万维网”和“环球网”&#xff0c;所以常简称web。 2、关于HTML HTML是一种用来描述网页的语言&…

【CSS基础】黑马程序员web前端开发入门(三)视频笔记

标题 1 基础认知1.1 体验CSS1.1.1 CSS的介绍1.1.2 CSS语法规则 1.2 CSS引入方式 2 基础选择器2.1 标签选择器2.2 类选择器2.3 id选择器2.4 通配符选择器 3 字体和文本样式3.1 字体样式3.1.1 字体大小&#xff1a;font-size3.1.2 字体粗细&#xff1a;font-weight3.1.3 字体样式…

前端开发入门到实战:HTML5 video视频播放

一、下面播报一则新闻 Chrome 70已经原生支持HTML5 <video>播放时候Picture-in-Picture,也就是俗称的画中画技术,也就是很多视频网站看评论时候,播放视频变小挂在右下角的这种交互技术。 我一瞅自己的Chrome浏览器,正好就是Chrome 70,体验了一番,挺有意思的,值得…

推荐六本前端开发必看的书籍

本文主要推荐六本前端开发必看的书籍 第一本&#xff1a;《JavaScript 语言精粹(修订版)》 我毕业后工作头一两年读的第一本 JavaScript 书就是《JavaScript 语言精粹》&#xff0c;当时完整地读了两遍&#xff0c;后来还时不时地会翻里面的重点看。对于前端刚工作的人和前端刚…

web前端开发入门学习线路图详解-2019升级版

现如今,Web前端工程师已经成为各大互联网公司不可或缺的热门职位,从业者队伍日渐庞大,这其中不乏零基础学习者和转行人士。为了方便大家系统而全面的掌握前端基础知识,千锋小编特意整理了web前端开发入门学习线路图和前端学习详细知识点汇总,希望对大家的学习有所帮助。 项…

【CSS进阶】黑马程序员web前端开发入门(四)视频笔记

标题 1 选择器进阶1.1 复合选择器1.1.1 后代选择器1.1.2 子代选择器 1.2 并集选择器1.3 交集选择器1.4 hover伪类选择器1.5 Emmet语法 2 背景相关属性2.1 背景颜色2.2 背景图片2.3 背景平铺2.4 背景位置2.5 背景相关属性连写拓展 3 元素显示模式3.1 块级元素3.2 行内元素3.3 行…

前端开发者快速入门安卓开发(安卓嵌入式开发课程经验总结)

目录 1.安卓开发结构2.xml3.java使用xml的标签Bitmap 4.开发注意 1.安卓开发结构 安卓开发和前端有异曲同工之处&#xff0c;只是js换成了Java&#xff0c;它的界面层是xml格式的&#xff0c;布局全部放在layout下 2.xml 以layout为根标签节点&#xff0c;一般有linearlayo…

WEB前端开发快速入门教程

目前web产品交互越来越复杂&#xff0c;用户使用体验和网站前端性能优化这些都得靠web前端工程师去做&#xff0c;web前端工程师是设计加开发的综合体&#xff0c;web前端工程师是在开发人员中最直接面向产品&#xff0c;面向用户的设计人员&#xff0c;一个开发团队的成果是要…

前端入门 01:基础入门

文章目录 目的开发工具基础说明简单示例相关拓展第三方库与框架打包成APP后端开发 总结题外话 目的 这些年硬件性能越来越好&#xff0c;HTML5、CSS3、ES6等新特性被越来越广泛的支持&#xff0c;前端开发变得越来越火。它简单易上手、效果华丽、跨平台&#xff0c;用作用户界…

前端之JavaScript入门篇

提示&#xff1a;这里是重中之重&#xff01; 文章目录 前言一、学习JavaScript的准备1.JavaScript的好处1.1、JavaScript的普适性1.2、JavaScript的易学性 2.如何插入JS3.引用JS外部文件4、JS在页面中的位置4.1、放在 部分&#xff1a;4.2、放在部分&#xff1a; 5、JavaScrip…

Web前端开发入门

浏览器工作原理 浏览器的工作原理&#xff1a;新式网络浏览器幕后揭秘 理解浏览器工作原理&#xff0c;包括浏览器的构成和渲染引擎的工作方式等。 这里简单提取了笔记&#xff0c;方便复习的时候快速过一遍。 https://blog.csdn.net/qq_18738333/article/details/87382924 …

前端开发入门之道

原文&#xff1a;http://www.w3cfuns.com/notes/18321/b3fe50a5de4e5d2922768aff34f21216.html 结合个人经历总结的前端入门方法&#xff0c;总结从零基础到具备前端基本技能的道路、学习方法、资料。由于能力有限&#xff0c;不能保证面面俱到&#xff0c;只是作为入门参考&a…

谷粒商城:06. 前端开发基础知识

前端技术栈对比 一、 VSCode使用 1. 安装常用插件 切换到插件标签页 安装以下基本插件 2. 创建项目 vscode 很轻量级&#xff0c;本身没有新建项目的选项&#xff0c;创建一个空文件夹就可以当做一个项目 3. 创建网页 创建文件 命名为 index.html 快捷键 ! 快速创建网…

前端入门教程(一)

1.网页 1.1 什么是网页 网站是指在因特网上根据一定的规则&#xff0c;使用HTML等制作的用于展示特定内容相关的网页集合。 网页是网站中的一“页”&#xff0c;通常是HTML格式的文件&#xff0c;它要通过浏览器来阅读。 网页是构成网站的基本元素&#xff0c;它通常由图片、链…

ThinkPHP6.0学习入门:环境搭建与安装教程

ThinkPHP6.0的环境要求如下&#xff1a; PHP > 7.1.06.0版本开始&#xff0c;ThinkPHP必须通过Composer方式安装和更新。 环境搭建&#xff1a; 可使用phpEnv软件快捷生成TP6所需的集成环境&#xff0c;包含了PHP7.4语言&#xff0c;Apache web服务器&#xff0c;Nginx w…

本机php环境搭建教程:windows环境下wampserver的配置教程——超级详细

转载自&#xff1a;http://youchunyan5.blog.163.com/blog/static/5896062020123474456352/ 本机php环境搭建教程&#xff1a;windows环境下wampserver的配置教程——超级详细 2012-01-25 14:28 对于初做PHP网站的朋友来说&#xff0c;第一步肯定是希望在自己电脑是搭建PHP环…

VSCode搭建 c 环境教程

文章目录 前言一、准备材料1.Visual Studio Code2.MinG-W64编译器 二、 环境搭建1.MinGW-w64编译器2.VSCode 三、整合四、测验疑难解答①.问&#xff1a;啥是VS Code&#xff1f;②.问&#xff1a;啥是编译器&#xff1f;③.问&#xff1a;什么是编程环境&#xff1f;④.问&…

ubuntu 搭建php环境

安装MySQL sudo apt-get install mysql-server安装过程设置mysql密码使用mysql -u root -p命令输入密码登录数据库 安装apache2 安装&#xff1a;sudo apt-get install apache2查看状态&#xff1a;service apache2 status 或 浏览器访问 localhost重启&#xff1a;service …

Mac下搭建php开发环境教程

这篇文章主要介绍了Mac下搭建php开发环境教程&#xff0c;Mac OS X内置了Apache 和 PHP&#xff0c;这样使用起来非常方便。本文以Mac OS X 10.6.3为例,需要的朋友可以参考下 Mac OS X 内置了Apache和 PHP&#xff0c;这样使用起来非常方便。本文以Mac OS X 10.6.3为例。主要内…

php本地环境搭建教程

http://jingyan.baidu.com/article/90bc8fc87f3cfff653640c24.html 如何在本地搭建php是大家都关注的&#xff0c;php环境搭建可以说比较容易也可以说比较难&#xff0c;对于新手而言环境搭建就是要学习以及测试所用的。PHP网站调试就是高手所用了。不管你是新手还是老手本地环…