快速上手Vue(适合懂基础html、css和js的人)

article/2025/10/25 18:56:07

快速上手Vue

前述

1. 目标是通过本文,快速了解Vue的基本原理和使用它进行简单的开发
2. 只需要html、css、js基础即可(原理涉及ES5,ES6,但对开发者来说不是必须要学的)
3. 这是根据我内部分享的PPT改写的

目录

1. 概述
2. 原理
3. 快速上手
4. 其他Vue常见功能
5. 使用Vue写一个大型页面

1、概述

Vue的优点:

  1. 轻量——最小只需要17.14kb(Vue.js 2.0生产版本)—— jquery是87KB(3.1)95KB(1.12)
  2. 易学——相比较React和Angular来说,学习曲线平缓
  3. 易开发——支持热加载(即修改源代码后,无需刷新即可在页面上看到效果)

使用Vue的项目: 1. 天猫、饿了么、小米商城、途牛、苏宁易购、微博头条 2. 其中某些使用了vue-native,也就是weex(比单纯前端多了后端部分)

几个典型特点: 1.数据驱动 1. jQuery和常规mvc编程的核心思想是dom操作,先有dom然后再操作。 2. Vue的核心思想是数据驱动,dom是为了数据服务的,数据可以生成dom、控制dom 2.生命周期 1. 创建时: 创建 → 绑定变量 → 挂载 → 模板编译 → 插入页面 2. 摧毁时: 摧毁前→摧毁后 3、封装 1. 在开发中,html、css、js共同组成一个Vue的组件; 2. 相同组件的多次复用,不同组件被组合成一个更大的Vue实例; 3. 上一级Vue实例不直接对下级Vue实例进行修改,而是通过接口; 4. 组件的三级:中间可以根据不同端来调用不同的组件。 * 整个网站 * 单个页面 * 页面的某个模块(如登录) 5. 因此Vue.js先天具有封装、继承的特性,这是面向对象编程的重要特点。 4、单向/双向绑定 单向:修改变量message的值,html里显示的内容自动变化。 双向:针对input标签。 利用的是setter和getter(es5)特性 ![这里写图片描述](https://img-blog.csdn.net/20170208210413919?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXEyMDAwNDYwNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

2、原理

项目结构:
这里写图片描述

开发环境 → 生产环境的过程:

这里写图片描述
内部实现原理:

这里写图片描述

###**3、快速上手** ####**新建Vue实例**
1、创建一个Vue实例:先引入Vue.js文件,然后new一个Vue的实例即可。如下面的代码,通过<script src="./vue.js"></script>引入,然后在<script>标签中创建实例2、挂载在Vue的实例里,通过传递的el属性3、单向/双向绑定data属性里的变量 = html标签里的{{}} = input标签里的v-model
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>DEMO</title><script src="./vue.js"></script>
</head>
<body>
<div id="app"><input v-model="test"/>{{test}}
</div>
<script>new Vue({   //创建一个Vue的实例  el: "#app", //挂载点是id="app"的地方data: {     //数据test: "abc"     //变量test}})
</script>
</body>
</html>

Vue实例解释

  1. 将内容作为Vue实例的参数,创建的时候以对象的形式作为参数传递
  2. 常见内容有:
1. 变量被放在对象的data属性中,类型是对象(有时候是函数,通过函数返回值获取);
2. 挂载点被放在el属性中,类型是字符串;
3. 方法被放在methodss属性中,类型是对象;
4. 创建时执行内容被放在created属性中,类型是函数;
5. 子组件被放在components属性中,类型是对象 

Dom控制

  1. 在使用jQuery的时候,我们需要手动添加dom、删除dom,修改dom内容;
  2. 在Vue的时候,我们需要更换思维方式,用变量去控制dom;
  3. 具体而说:
1. 单个dom的添加/删除/显示/隐藏——变量控制
2. 多个在显示上互斥的dom(如登录时的提示)—— 用1个变量去控制
3. 多个同类型dom(用v-for来动态生成)

示例页面:
http://www.jianwangsan.cn/ppt/dom%E6%93%8D%E4%BD%9C.html

代码:
https://github.com/qq20004604/quickly-start-vuejs/blob/master/dom%E6%93%8D%E4%BD%9C.html

input相关

  1. 前端输入内容大部分都是通过input标签,Vue可以完美兼容。
  2. 例如,微博的注册页面如下图:

这里写图片描述

  1. 使用jQuery的情况下,流程如下:
    Dom→值→验证→(正确)提交→(错误)显示错误提示Dom

  2. 在Vue中,核心思想是数据驱动,因此,input标签需要绑定的值直接和Vue实例里的变量双向绑定起来。
    当用户输入值的时候,对应的变量值跟着改变;
    当检测输入是否符合规定,只需要直接检测对应变量的值即可;

demo:
http://www.jianwangsan.cn/ppt/input.html

代码:
https://github.com/qq20004604/quickly-start-vuejs/blob/master/input.html

表格

  1. 表格的核心特点是:类型重复的大量内容。
  2. Vue非常擅长对表格的处理,只需要已知数据,预先设置好格式,即可自动生成数据。
  3. 常见表格需求是选择性显示(比如只显示符合条件的项),这点Vue也十分擅长,你只需要设置好条件,Vue在渲染的时候会自动帮你完成。

demo:
http://www.jianwangsan.cn/ppt/grid.html

代码:
https://github.com/qq20004604/quickly-start-vuejs/blob/master/grid.html

4、其他Vue常见功能

1、过滤器功能:

1. 主要用于文本转换;
2. 例如获得一个日期对象后,通过过滤器命令自动转为我们要求的日期格式。
3. {{ message | capitalize }}  message变量被过滤器函数capitalize所处理

2、计算属性:

1. 更加高级的功能,可以视为过滤器功能的进阶版,适用的方向更多(不仅仅是文本)
2. 获取一个变量(输入内容)→通过计算函数转换→显示转换结果(输出内容)
3. 当输入内容变更时,输出内容也会自动随之变更
4. 利用ES5的getter和setter特性来实现,有缓存特点

计算属性的官网示例

这里写图片描述

3、$watch方法:

1. 监控变量,当变量改变时触发回调函数;
2. 例如之前的微博注册demo中,通过检测表示省份的变量的变化,来动态设置表示市的dom

4、class/style绑定:

1. 通过改变变量,来设置dom的样式的类,或者直接设置样式的属性
2. <div v-bind:class="{ active: isActive }"></div>
3. isActive值为true时,dom获得active这个类

5、事件监听:

1. 通过$emit触发事件和$on响应事件,只在当前Vue实例内有效,因此不会带来干扰;
2. 用起来非常舒服,适用于一对多和多对一的场景;
3. 跨组件响应(父子组件通信)时,可以使用global event bus来实现,或者使用插件实现

6、路由功能:

1. 简单来说,按需加载,而不是一次性全部加载;
2. 有官方推荐支持使用的的vue-router库;

5、使用Vue写一个大型页面

原则是,写之前先从大往小拆分,搭好框架。

比如典型分拆有:header导航栏——main中间层——footer底部

写的时候,从小往大组装起来。

例如我写的某个三级结构的demo的结构:

##页面关系
event-bus.js    //全局事件(假如2个组件之间需要交互,则依靠这个),全局配置App.vue    //根组件
|---- main-top.vue    //顶部导航栏
|---- main-container.vue    //用户正常浏览区域
|---- main-foot.vue    //页面底部
|---- login.vue    //登录后台页面
|---- news-manage.vue    //新闻管理(后台)
|   |---- news-create.vue    //新建新闻(发送)
|   |---- news-delete.vue    //删除新闻
|
|---- news-scan-list.vue    //新闻列表
|---- news-view.vue    //新闻阅读页面
|---- advice-post.vue    //街办信箱,用于提交意见
|---- advice-scan.vue    //top标签的浏览反馈|---- advice-scan-list.vue    //查看反馈列表|---- advice-scan-page.vue    //查看反馈页面(本页面有反馈,管理员编辑反馈也在本页面)

以微博页面为例,用vue来拆分时如何来写:

1、先截取微博的一部分图,假设这个是二级组件(一级组件是根组件)

这里写图片描述
2、截取其header部分,作为三级组件

这里写图片描述

3、然后再单独抽出来logo右边的搜索框,作为四级组件,

logo归属于三级组件中,

其他四级组件有:

右边的首页、视频那一排

这里写图片描述

4、四级组件里包含以下:

1. html:一个input,一段提示文字(可以作为input的placeholder也可以作为一个单独的span),一个搜索图标;
2. css:相应的样式,具体略;
3. js:点击响应事件等;
4. 五级组件或者归属于本组件:输入内容后,自动出现下拉提示框

这里写图片描述

全部拆分完成后,我们就可以从最下层开始,一个一个的写功能点了,

然后再将其组装起来,成为一个完整的vue项目


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

相关文章

Esp8266学习之旅⑥ 了解SmartConfig与Airkiss一键配网,给8266一键配网上云端。(带Demo)

本系列博客学习由非官方人员 半颗心脏 潜心所力所写&#xff0c;不做开发板。仅仅做个人技术交流分享&#xff0c;不做任何商业用途。如有不对之处&#xff0c;请留言&#xff0c;本人及时更改。 序号SDK版本内容链接1nonos2.0搭建开发环境&#xff0c;开始一个“hellow world…

KMP算法完整教程 (下)

下面我们用数学归纳法来解决这个填值的问题。 这里我们借鉴数学归纳法的三个步骤&#xff08;或者说是动态规划&#xff1f;&#xff09;&#xff1a; 1、初始状态2、假设第j位以及第j位之前的我们都填完了3、推论第j1位该怎么填 初始状态我们稍后再说&#xff0c;我们这里直…

多态以及它的单继承、多继承、菱形继承的对象模型

什么是多态 同一件事物在不同的场景下表现忽的多种形态。不同类的对象对同一消息做出响应&#xff0c;同一消息可以根据发送对象的不同而采用多种不同的行为方式。 静态多态 在编译期间&#xff0c;确定程序的行为&#xff08;确定具体调用哪个函数&#xff09; 动态多态 程…

WEBBASIC Unit01 Web概述 、 HTML概述 、 文本处理 、 图像和超链接 、 表格 、 表单

一.课程介绍 1.HTML(1.5天) 勾勒出网页的结构和内容 2.CSS(3天) 美化网页 3.JavaScript(4天) 让网页呈现动态的数据和效果 4.jQuery(1.5天) 是一个框架,提高JS的开发效率 二.WEB概述 三.XML和HTML对比 1.XML 可扩展(自定义)标记语言标记、属性、标记之间的关系都可以…

HTML5_超链接、锚点、下载、表格、表格嵌套、列表、页面布局、表单

1、修改图片的高度和宽度 ● 1、如果要修改一张图片的尺寸&#xff0c;最好先算好宽度与高度的比例 ● 2、如果修改图片时 只修改宽度或者只修改高度时另一项属性会根据宽度或者告诉的缩放比例进行调整 2、PNG图片和JPG图片 PNG格式的图片 一般保存白色背景为透明色的图片…

js 点击table的某个单元格实现对应列的单元格变色

本文用于用js来实现&#xff1a;点击table的某个单元格实现对应列的单元格变色 一、表格CSS样式 <style>* {margin: 0;padding: 0;}table {width: 800px;height: 300px;}table,tr,td {border: 1px solid;border-collapse: collapse;}</style> 二、表格结构&#xf…

表格布局(TableLayout)及重要属性

TableLayout属性&#xff1a; android:collapseColumns:将TableLayout里面指定的列隐藏&#xff0c;若有多列需要隐藏&#xff0c;请用逗号将需要隐藏的列序号隔开。 android:stretchColumns:设置指定的列为可伸展的列&#xff0c;以填满剩下的多余空白空间&#xff0c…

Layout布局之表格布局

适用于多行多列的布局格式,每个TableLayout是由多个TableRow组成,一个TableRow就表示TableLayout中的每一行,这一行可以由多个子元素组成。实际上TableLayout和TableRow都是LineLayout线性布局的子类。但是TableRow的参数android:orientation属性值固定为horizontal,且andr…

前端表格排序插件TableSort资料整理

** 前端表格排序插件TableSort资料整理 ** 一、前言 项目实际开发中&#xff0c;经常会遇到对表格排序的需求&#xff0c;下面整理了几个常用的表格排序方法。 二、 常用插件 1、jquery.tablesorter.js &#xff0c; 用法参考这篇文章&#xff1a;https://www.cnblogs.co…

Type setting_latex 表格

彩色表格 [plain] view plain copy print ? \begin{table} </span></span></li><li class""><span>\centering </span></li><li class"alt"><span>\caption{彩色的表格} </span></li&…

JSB 原理与实践

大厂技术 坚持周更 精选好文 什么是 JSB 我们开发的 h5 页面运行在端上的 WebView 容器之中&#xff0c;很多业务场景下 h5 需要依赖端上提供的信息/能力&#xff0c;这时我们需要一个可以连接原生运行环境和 JS 运行环境的桥梁 。 这个桥梁就是 JSB&#xff0c;JSB 让 Web 端…

html一个带图片的表格,Html表格

&#xfeff;&#xfeff; 在解说今天Html表单之前。还是先看张图片来刺激一下。 源代码超链接演示 仿百度搜索框 请输入要搜索的内容&#xff1a; 看了上图百度的搜索页面&#xff0c;有木有心动一下&#xff0c;别慌你也能够的。这就是我们今天要讲的表单。 什么是Html表单—…

最新百度云不限速软件

直接放图不废话。 下载链接&#xff1a;https://pan.baidu.com/s/1ZDo6xMjMW525sH7FUB6QEA提取码&#xff1a;xey9

获取百度云盘不限速下载软件 每秒达到10兆 这叫一个“爽”

公众号内回复&#xff1a;不限速 即可获取下载链接 下载资源啦 永远也不需要开通VIP 赶快去下载吧 小编亲自体验下载速度 行走在岁月的小巷&#xff0c;听风&#xff0c;读雨&#xff0c;夜色空寂&#xff0c;一切烟云&#xff0c;皆会慢慢散去&#xff0c;光阴眷顾&a…

一款百度网盘不限速下载工具

此工具收集于网络&#xff0c;如有侵权请联系删除&#xff01;&#xff01;&#xff01; 此工具仅用于个人学习&#xff0c;请勿用于商业获利&#xff0c;造成后果自负&#xff01;&#xff01;&#xff01; 这款免费的百度云高速下载工具&#xff1a; 界面美观&#xff0c;…

百度云下载不限速方法+软件

转自&#xff1a;https://www.52pojie.cn/thread-888047-1-1.html 1、Pandownload这个不用多说&#xff0c;功能强大。目前是我的主力。 2、速盘速盘用得比较少&#xff0c;大致和pandownload差不多。 3、百度云下载神器这种就我个人来说比较鸡肋&#xff0c;需要在网页版的百度…

无封号风险,2020最新百度网盘不限速下载软件,下载速度10M/S

前不久给大家带来的卢本伟大神修改的pandownload不知道大家还在没在用&#xff0c;能不能用&#xff0c; 今天小七就在给大家带来一款度盘高速下载工具&#xff0c;软件完全免费并且没有任何下载限制&#xff0c;而且相比pandownload需要登录百度账号&#xff0c;这款软件无需…

Linux下载工具photon,不限速、免配置的 Aria2 免费开源下载软件 Photon,替代迅雷的...

原标题&#xff1a;不限速、免配置的 Aria2 免费开源下载软件 Photon&#xff0c;替代迅雷的 谈到下载软件除迅雷、IDM 之外&#xff0c;想必很多人都听过 Aria2 的大名&#xff0c;它绝对是跨平台不限速的“神器级”下载工具&#xff0c;可由于它是「命令行」软件&#xff0c;…

百度云下载不限速方式集合

因为百度云限速严重&#xff0c;因此很多时候都是在寻找相应的工具去破解百度云&#xff0c;这里整理一下自己一般用的一些工具的方法。&#xff08;有些方式有些时候会被官方和谐&#xff0c;因此多试几种&#xff09; 文章目录 1、使用第三方工具pandownload2、使用油猴脚本配…

解决微云下载限速问题

1.首先将文件存到微云 2.打开手机我的设备&#xff0c;我的电脑&#xff08;也可以是好友&#xff09;&#xff0c;找到发送文件 3.点击微云&#xff0c;找到微云里面的文件&#xff0c;点击发送 4.就可以在电脑端不限速下载了 注意但是好像根据很多人的反馈4GB以上的好像发不过…