Vue_快速入门

1.前言

前端开发模式的发展。

静态页面

  • 最初的网页以HTML为主,是纯静态的网页。网页是只读的,信息流只能从服务的到客户端单向流通。开发人员也只关心页面的样式和内容即可。

异步刷新,操作DOM

  • 1995年,网景工程师Brendan Eich 花了10天时间设计了JavaScript语言.

    随着JavaScript的诞生,我们可以操作页面的DOM元素及样式,页面有了一些动态的效果,但是依然是以静态为主。

  • ajax盛行:

    • 2005年开始,ajax逐渐被前端开发人员所重视,因为不用刷新页面就可以更新页面的数据和渲染效果。
    • 此时的开发人员不仅仅要编写HTML样式,还要懂ajax与后端交互,然后通过JS操作Dom元素来实现页面动态效果。比较流行的框架如Jquery就是典型代表。

MVVM,关注模型和视图–相当于后端的MVC,但是前端的MVVM比MVC强大

  • 2008年,google的Chrome发布,随后就以极快的速度占领市场,超过IE成为浏览器市场的主导者。
  • 2009年,Ryan Dahl在谷歌的Chrome V8引擎基础上,打造了基于事件循环的异步IO框架:Node.js。
    • 基于时间循环的异步IO
    • 单线程运行,避免多线程的变量同步问题
    • JS可以编写后台diamante,前后台统一编程语言
  • node.js的伟大之处不在于让JS迈向了后端开发,而是构建了一个庞大的生态系统。
  • 2010年,NPM作为node.js的包管理系统首次发布,开发人员可以遵循Common.js规范来编写Node.js模块,然后发布到NPM上供其他开发人员使用。目前已经是世界最大的包模块管理系统。
  • 随后,在node的基础上,涌现出了一大批的前端框架:
    在这里插入图片描述

MVVM模式

  • M:即Model,模型,包括数据和一些基本操作
  • V:即View,视图,页面渲染结果
  • VM:即View-Model,模型与视图间的双向操作(无需开发人员干涉)

在MVVM之前,开发人员从后端获取需要的数据模型,然后要通过DOM操作Model渲染到View中。而后当用户操作视图,我们还需要通过DOM获取View中的数据,然后同步到Model中。

而MVVM中的VM要做的事情就是把DOM操作完全封装起来,开发人员不用再关心Model和View之间是如何互相影响的:(双向绑定)

  • 只要我们Model(数据)发生了改变,View(页面)上自然就会表现出来。
  • 当用户修改了View,Model中的数据也会跟着改变。

把开发人员从繁琐的DOM操作中解放出来,把关注点放在如何操作Model上。

注:所有的获取页面元素或者给页面元素赋值的操作都是DOM操作
在这里插入图片描述
而我们今天要学习的,就是一款MVVM模式的框架:Vue

面试题1:解释一下MVVM?

M:model数据层

V:view视图层

VM:将model层和view层绑定在一起的层,这一层vue已经自动完成好了

面试2:MVC和MVVM的区别是什么?

在MVVM之前,开发人员从后端获取需要的数据模型,然后要通过DOM操作Model渲染到View中。而后当用户操作视图,我们还需要通过DOM获取View中的数据,然后同步到Model中。

而MVVM中的VM要做的事情就是把DOM操作完全封装起来,开发人员不用再关心Model和View之间是如何互相影响的:

  • 只要我们Model发生了改变,View上自然就会表现出来。
  • 当用户修改了View,Model中的数据也会跟着改变。

2.认识Vue

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

渐进式

1 我们可以像使用jQuery一样,使用vue – 熟悉vue的基础语法

2 采用node的方式去使用vue --企业级开发模式 – 掌握vue企业级开发模式

前端框架三巨头:Vue.js(150k)、React.js(118k)、AngularJS(45k),vue.js以其轻量易用著称,vue.js和React.js发展速度最快,AngularJS已经是老三,而且还在继续下降。

官网:https://cn.vuejs.org/

参考:https://cn.vuejs.org/v2/guide/

在这里插入图片描述
Git地址:https://github.com/vuejs
在这里插入图片描述
尤雨溪,Vue.js 创作者,Vue Technology创始人,致力于Vue的研究开发。

总结:

1 vue是一个mvvm框架,就是后端的MVC框架,但是功能更强大

2 vue的最全面的文档是官方文档

3.快速入门

接下来,我们快速领略下vue的魅力

3.1.创建工程

创建一个maven工程:
在这里插入图片描述
位置信息:
在这里插入图片描述

3.2.安装vue

3.2.1.下载安装

下载地址:https://github.com/vuejs/vue

https://github.com/vuejs/vue/blob/dev/dist/vue.js

可以下载2.6.10版本https://github.com/vuejs/vue/archive/v2.6.10.zip

下载解压,得到vue.js文件。
在这里插入图片描述

3.2.2.使用CDN

或者也可以直接使用公共的CDN服务:

<!-- 开发环境版本,包含了用帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

或者:

<!-- 生产环境版本,优化了尺寸和速度 -->
<script src="https://cdn.jsdelivr.net/npm/vue"></script>

3.3.vue入门案例

3.3.1.HTML模板

在vue-demo目录新建一个HTML
在这里插入图片描述
在hello.html中,我们编写一段简单的代码:
在这里插入图片描述
h2中要输出一句话:xx 非常帅。效果图如下所示:
在这里插入图片描述

3.3.2.vue渲染

然后我们通过Vue进行渲染:

<!-- 引入vue -->
<script src="vue-2.6.10.js"></script>
<!-- 1 必须要有父容器,所有内容只能写在这个父容器中
      父容器一定要有id属性,id的值自定义,但是一般叫 app
 -->
<div id="app">

    <!-- 此处需要获取Vue对象中的name
         {{}}两个大括号获取data中的属性的值
     -->
    <h2>{{name}}很帅</h2>
    <h2>有{{num}}位女神为之倾倒</h2>
</div>
<!-- 通过vue控制x显示的内容 -->
<script>
    // 方向一:当改变data.属性内容的时候,view中自动更新
    // 方向二:当在页面改变name的时候,data中的name也会自动更新
    var vm = new Vue({
        el:"#app",//el就是element的简写,指向父容器的id
        data:{// data 专门用来存放数据
            name:"奇哥",
            num:100
        }
    });
</script>
  • 首先通过 new Vue()来创建Vue实例
  • 然后构造函数接收一个对象,对象中有一些属性:
    • el:是element的缩写,通过id选中要渲染的页面元素,本例中是一个div
    • data:数据,数据是一个对象,里面有很多属性,都可以渲染到视图中
      • name:这里我们指定了一个name属性
  • 页面中的h2元素中,我们通过{{name}}的方式,来渲染刚刚定义的name属性。

打开页面查看效果:
在这里插入图片描述
更神奇的在于,当你修改name属性时,页面会跟着变化:
在这里插入图片描述

3.3.3.双向绑定

方向一:当data中的数据发生改变的时候,页面的显示也会自动改变
方向二:当页面的  文本框的值  发生改变的时候,data中的属性也会对应发生改变
       文本框 

我们对刚才的案例进行简单修改:

<div id="app">
    <input type="text" v-model="num">
    <h2>
        {{name}} 非常帅,
        有{{num}}位女神为他着迷。
    </h2>
</div>
<script src="vue-2.6.10.js"></script>
<script type="text/javascript">
    // 生成一个Vue实例
    var app = new Vue({
        el:"#app", // el,即element。要渲染的的页面元素
        data:{ // 数据
            name:"奇哥",
            num:1
        }
    })
</script>
  • 我们在data添加了新的属性:num
  • 在页面中有一个input元素,通过v-modelnum进行绑定。
  • 同时通过{{num}}在页面输出

效果:
在这里插入图片描述
我们可以观察到,输入框的变化引起了data中的num的变化,同时页面输出也跟着变化。

  • input与num绑定,input的value值变化,影响到了data中的num值
  • 页面{{num}}与数据num绑定,因此num值变化,引起了页面效果变化。

没有任何dom操作,这就是双向绑定的魅力。

3.3.4.事件处理

我们在页面添加一个按钮:

<input type="button" value="+" v-on:click="num++">
<input type="button" value="-" v-on:click="num--">
  • 这里用v-on指令绑定点击事件,而不是普通的onclick,然后直接操作num
  • 普通onclick事件是无法直接操作num的。

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值