一、vue介绍

  vue官网说:Vue.js(读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式的JavaScript框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。

1、渐进式的JavaScript框架

          Angular    React          Vue
作者 google公司 facebook公司 尤雨溪
组织方式 MVC 模块化 模块化
数据绑定 双向绑定 单向绑定 双向绑定
模板能力 强大 自由 自由
自由度 较小 大 较大
路由 静态路由 动态路由 动态路由

2、前端框架和库的区别

(1)功能上的不同

  jquery库:包含DOM(操作DOM)+请求,就是一块功能的实现。

  art-template库:模板引擎渲染,高性能的渲染DOM。

  框架:大而全的概念,简易的DOM体验+请求处理+模板引擎。

  在KFC的世界来看的话,库就是一个小套餐,框架就是全家桶。

(2)代码上的不同

  一般使用库的代码,是调用某个函数或者使用抛出来的对象,我们自己处理库中的代码。

  一般使用框架,框架本身提供好的成套的工具帮我们运行我们编写好的代码。

(3)框架的使用

  1)初始化自身的一些行为;

  2)执行你所编写的代码;

  3)释放一些资源。

3、关于渐进式和自底向上增量开发

  我们来看一下知乎的回答:知乎回答

  总的来说,它给你提供足够的optional,但并不主张很多required。

  我们常说:做减法比做加法难。我觉得一个框架如果是“渐进式”的,就意味着,它本身承担了较难的做减法的部分,而留给它的使用者较简单的做加法的部分。

  就是说,在我们用一个工具的时候,并不是为了用其中的某一个部分,而想办法无视或者裁剪掉其他部分(做减法),而是上手就可以用上它的大多数功能,再在需要的时候引入它的官方或第三方插件(做加法)。

二、vuejs的优点

1.易用

  已经会了 HTML、CSS、JavaScript?即刻阅读指南开始构建应用!

2.灵活

  不断繁荣的生态系统,可以在一个库和一套完整框架之间自如伸缩。

3.高效

  20kB min+gzip 运行大小
      超快虚拟 DOM (虚拟dom的渲染速度要比我们真实的dom渲染速度快)
      最省心的优化

  虚拟的DOM的核心思想是:对复杂的文档DOM结构,提供一种方便的工具,进行最小化地DOM操作。这句话,也许过于抽象,却基本概况了虚拟DOM的设计思想

  (1) 提供一种方便的工具,使得开发效率得到保证

  (2) 保证最小化的DOM操作,使得执行效率得到保证

三、vue的使用

1、安装

(1)兼容性

  Vue 不支持 IE8 及以下版本,因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性。但它支持所有兼容 ECMAScript 5 的浏览器

(2)Vue Devtools插件

  在使用 Vue 时,推荐在浏览器上安装 Vue Devtools。它允许你在一个更友好的界面中审查和调试 Vue 应用。

(3)直接用<script>引入(推荐新手使用)

  直接下载并用 <script> 标签引入,Vue 会被注册为一个全局变量。

  下载可以选择去npm下载或者去vue官网下载并引入:

  

(4)cdn引入

  我们推荐链接到一个你可以手动更新的指定版本号:

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>

  可以在 cdn.jsdelivr.net/npm/vue 浏览 NPM 包的源代码。

  Vue 也可以在 unpkg 和 cdnjs 上获取 (cdnjs 的版本更新可能略滞后)。

  确认了解不同构建版本并在你发布的站点中使用生产环境版本,把 vue.js 换成 vue.min.js。这是一个更小的构建,可以带来比开发环境下更快的速度体验。(开发环境使用vue.js,生产环境使用vue.min.js

2、引入vue.js文件

  这里是开发环境,因此选用vue.js。

<body>
<!--1.先引包-->
<!--<script src="js/vue.js"></script>-->
<script type="text/javascript" src="./node_modules/vue/dist/vue.js"></script>
<script type="text/javascript"> </script>
</body>

  引入vue.js文件后,Vue被注册为一个全局的变量,是一个构造函数。在网站控制台查看:

  

四、使用Vue实例化对象

1、创建vue实例对象

  每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的:

<body>
<div id="app">
<h3>{{title}}</h3>
<p>{{msg}}</p>
</div>
<script src="js/vue.js"></script>
<script>
// 创建vue实例对象
var app = new Vue({
el: "#app", // 元素
// 所有的数据都放在数据属性里
data: {
title: "土豆",
msg: "路飞"
}
})
</script>
</body>

  输出结果:

  

  已经简单的创建了第一个vue应用。渲染的数据的方式我们也叫声明式的渲染。现在数据和 DOM 已经被建立了关联,所有东西都是响应式的。我们要怎么确认呢?打开你的浏览器的 JavaScript 控制台 (就在这个页面打开),并修改 app.msg 的值,你将看到上例相应地更新。

2、模板语法

  {{}}模板语法:主要作用是插值,不仅可以插变量,只要你能想到的插入都可以(if-else不可以)。

<body>
<div id="app">
<h3>{{msg}}</h3>
<!--字符串拼接-->
<h3>{{msg + 'hello'}}</h3>
<!--三目运算符-->
<h3>{{1>2?"真的":"假的"}}</h3>
<!--可以插入字符串-->
<h4>{{'helloworld'.split('').reverse().join('')}}</h4>
<!--不能使用if-else-->
<!--{{}}模板语法的设计,只是为了简单的运算-->
</div> <!--1.先引包-->
<!--<script src="js/vue.js"></script>-->
<script type="text/javascript" src="./node_modules/vue/dist/vue.js"></script>
<script type="text/javascript">
// 2.创建vue实例化对象
new Vue({
el: '#app', // 目的地
data:{ // data属性可以是函数或对象
msg: 'hello Vue' // 数据属性
}
})
</script>
</body>

  显示效果:

  

注意:

  1)data属性可以是一个函数也可以是一个对象。msg是数据属性。依靠数据驱动视图(模板语法),将数据(msg)渲染到DOM(标签也就是view)中。

  2)模板语法中不能使用if-else

  3)Vue实例化对象后,这个对象中属性前面都有前缀 $,主要是为了跟我们自定义的属性区分。

3、app.$el对象问题

(1)app.$el对象等价于对应标签所有内容

<body>
<div id="app">
<h3>{{msg}}</h3>
<!--字符串拼接-->
<h3>{{msg + 'hello'}}</h3>
<!--三目运算符-->
<h3>{{1>2?"真的":"假的"}}</h3>
</div> <!--1.先引包-->
<!--<script src="js/vue.js"></script>-->
<script type="text/javascript" src="./node_modules/vue/dist/vue.js"></script>
<script type="text/javascript">
// 2.创建vue实例化对象
var app = new Vue({ // 这样定义,实例化有返回值
el: '#app', // 目的地
data:{ // data属性可以是函数或对象
msg: 'hello Vue', // 数据属性
}
});
console.log(app);
console.log(app.$el);
console.log(app.$el === document.getElementById('app'));
</script>
</body>

  显示效果:

  

(2)el和template的优先级问题

  template的优先级要高于el,具体情况如下所示:

  1)当代码只定义了el和模板语法时:

<body>
<div id="app">
<h3>{{msg}}</h3>
</div>
<script type="text/javascript" src="./node_modules/vue/dist/vue.js"></script>
<script type="text/javascript">
new Vue({
el: '#app',
data: {
msg: 'hello指令系统',
},
//template:`<h4>{{msg}}</h4>>`
})
</script>
</body>

  模板在app标签下,效果如下所示:

  

  2)当代码也定义了template时:

<body>
<div id="app">
<h3>{{msg}}</h3>
</div>
<script type="text/javascript" src="./node_modules/vue/dist/vue.js"></script>
<script type="text/javascript">
new Vue({
el: '#app',
data: {
msg: 'hello指令系统',
},
template:`<h4>{{msg}}</h4>>`
})
</script>
</body>

  msg没有渲染到el中,如下图所示:

  

4、Vue应用的组成结构

  一个 Vue 应用由一个通过 new Vue 创建的根 Vue 实例,以及可选的嵌套的、可复用的组件树组成。举个例子,一个 todo 应用的组件树可以是这样的:

根实例
└─ TodoList
├─ TodoItem
│ ├─ DeleteTodoButton
│ └─ EditTodoButton
└─ TodoListFooter
├─ ClearTodosButton
└─ TodoListStatistics

vue——介绍和使用的更多相关文章

  1. Vue01 Vue介绍、Vue使用、Vue实例的创建、数据绑定、Vue实例的生命周期、差值与表达式、指令与事件、语法糖

    1 Vue介绍 1.1 官方介绍 vue是一个简单小巧的渐进式的技术栈,它提供了Web开发中常用的高级功能:视图和数据的解耦.组件的服用.路由.状态管理.虚拟DOM 说明:简单小巧 -> 压缩后 ...

  2. Vue.js是什么,vue介绍

    Vue.js是什么,vue介绍 Vue.js 是什么Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用. ...

  3. vue.js 2.0 官方文档学习笔记 —— 01. vue 介绍

    这是我的vue.js 2.0的学习笔记,采取了将官方文档中的代码集中到一个文件的形式.目的是保存下来,方便自己查阅. !官方文档:https://cn.vuejs.org/v2/guide/ 01. ...

  4. Vue介绍

    1.Vue的简介 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架. Vue 只关注视图层, 采用自底向上增量开发的设计. Vue 的目标是通过尽可能简单的 AP ...

  5. Vue学习笔记之Vue介绍

    vue的作者叫尤雨溪,中国人.自认为很牛逼的人物,也是我的崇拜之神. 关于他本人的认知,希望大家读一下这篇关于他的文章,或许你会对语言,技术,产生浓厚的兴趣.https://mp.weixin.qq. ...

  6. Vue介绍以及模板语法-插值

    1.Vue的介绍 Vue是一套用于构建用户界面的渐进式框架. 注意:Vue是一个框架,相对于jq库来说,是由本质的区别的:https://cn.vuejs.org/ Vue不支持IE8及一下版本,因为 ...

  7. 02 Vue介绍与安装,指令系统 v-*、音乐播放器

    VUE文档 https://cn.vuejs.org/v2/guide/ 1.vue的介绍 尤雨溪 1.vue的优点 2.vue的介绍 3.vue的安装 4.声明式渲染 <body> &l ...

  8. Vue小白篇 - Vue介绍

    Vue ?啥是Vue?能干嘛? vue 的介绍 Vue 是一套用于构建用户界面的 渐进式框架 ,与其它大型框架不同的是, Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层 前端三大框 ...

  9. Vue 介绍,优点,实例

    一 认识vue 1.什么是vue 以数据驱动的web渐进式框架 三大主流框架: Angular React Vue 设计模式:MVVM 2.vue优点 - 以数据驱动,不直接操作DOM,效率高- 单页 ...

随机推荐

  1. 1.Java 程序工作原理

    JVM:JAVA虚拟机,java程序运行在jvm上,jvm是java程序的运行环境. java程序的平台无关性:java编写的程序(.java)经过编译器变异成字节码文件(.class).这个字节码文 ...

  2. java开发系统内核:让内核从严重错误中恢复

    更详细的讲解和代码调试演示过程,请参看视频 用java开发C语言编译器 更详细的讲解和代码调试演示过程,请参看视频 如何进入google,算法面试技能全面提升指南 如果你对机器学习感兴趣,请参看一下链 ...

  3. 条目十二《切勿对slt容器的线性安全性又不切实际的依赖》

    条目十二<切勿对slt容器的线性安全性又不切实际的依赖> 这一条目,我想用简短而有力的语句来总结. stl库是为了照顾大多数情况,而不是某一领域,如果在库层次实现线性安全,很大可能是对性能 ...

  4. SJTU 机试 最小面积子矩阵 压缩+双指针

    链接:https://www.nowcoder.com/questionTerminal/8ef506fbab2742809564e1a288358554来源:牛客网 一个N*M的矩阵,找出这个矩阵中 ...

  5. 域名dns 查询

    腾讯云 DNS 使用不同套餐版本的解析分别为不同集群,每种集群对应的 DNS 地址是不同的: 解析套餐版本 DNS 地址 备注 免费 DNS 地址 f1g1ns1.dnspod.net/f1g1ns2 ...

  6. AtCoder Beginner Contest 113 C

    C - ID Time limit : 2sec / Memory limit : 1024MB Score: 300 points Problem Statement In Republic of ...

  7. [转] Spring Boot实战之Filter实现使用JWT进行接口认证

    [From] http://blog.csdn.net/sun_t89/article/details/51923017 Spring Boot实战之Filter实现使用JWT进行接口认证 jwt(j ...

  8. RSA加密、解密、签名、校验签名

    先说下RSA概率: 公钥和私钥是通过本地openssl软件生成. 正常: 公钥加密=>私钥解密: 私钥签名=>公钥校验签名 最近做一个项目,对方用java公钥去校验签名,这边java的De ...

  9. 【3dsMax安装失败,如何卸载、安装3dMax 2012?】

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  10. Java基础26-对象初始化过程

    /* 1.因为new Test1()用到了Test1类,所以会把它从硬盘上加载进入内存 2.如果有static静态代码块就会随着类的加载而执行,还有静态成员和普通方法也会随着类的加载而被加载 3.在堆 ...