Vue

Vue实例

  1. 创建实例:

var vm = new Vue({ //code })

  1. 数据与方法:

只有当实例被创建时 data 中存在的属性才是响应式的;

Vm.b = ‘h1’ 是不会触发视图的变化的; Object.freeze(),这会阻止修改现有的属性

  1. 生命周期:

created:实例被创建后执行的代码

mounted:模板编译/挂在之后

update:组件更新之后

destoryed:组件销毁之后

不要在选项属性或回调上使用箭头函数

模板语法

  1. 文本:{{ }}双括号文本插值,或者用v-once 一次性的插值,后面将不能改变。
  2. 原始Html:输出真正的 HTML,你需要使用 v-html 指令
  3. 特性:不能使用Mustache 语法,遇到这种情况应该使用 v-bind 指令
  4. 使用javascript表达式:每个绑定只能单个表达式
  5. 指令:是带有V-的特殊指令
  6. 参数:v-bind用于相应式的更新html; v-on用于监听dom变化
  7. 缩写:v-bind  -->:  v-on  -->@

计算属性和侦听器

  1. 计算属性和调用方法

计算属性是基于它们的依赖进行缓存的。计算属性只有在它的相关依赖发生改变时才会重新求值。这就意味着只要 message 还没有发生改变,多次访问 reversedMessage 计算属性会立即返回之前的计算结果,而不必再次执行函数。调用方法每当触发重新渲染时总会再次执行函数,如果你不希望有缓存,请用方法来替代。

Class  和 Style绑定

绑定html class

  1. 对象语法  <div v-bind:class=”{active:isActive}”></div> 动态切换。
  2. 数组语法  <div v-bind:class=”[activeClass,errorClass]”></div>  传一组class过去(也可以按条件,使用三元)

绑定内联样式

  1. 对象语法  <div v-bind:style=”styleObject”></div>  绑定一个样式对象
  2. 数组语法  <div v-bind:style=”[activeClass,errorClass]”></div>
  3. 多重值<div :style=”{display:[‘-webkit-box’,’-ms-flexbox’,’flex’]}”></div> 渲染数组中最后一个被浏览器支持的属性

条件渲染

v-if  v-else  v-else-if  (v-if 与  v-for 一起使用的时候 v-for优先级高)

v-show 切换display属性  不支持template 和 v-else

列表渲染

  1. v-for 进行遍历(item of items)   在使用的时候提供key,

在遍历一个对象的时候支持三个参数 key  value 和index

  1. 数组的更新监测

会引起视图的变化:pop(),push(),shift(),unshift(),splice(),sort(),reverse()

非变异方法:filter(),concat(),slice()会产生一个新数组

Vue不会监测到变化的:1)使用下标直接设置某一项   2)修改数组的长度

  1. 对象更改注意事项

Vue不能监测对象属性的添加后者删除。

对于已经创建的实例,不能动态添加根级别的响应式属性,可以使用 Vue.set(object, key, value) 方法向嵌套对象添加响应式属性。

赋予多个新属性:Object.assgin(),  _.extend()

事件处理

监听事件:v-on 监听dom事件     v-on:click="counter += 1"

事件处理方法: 接受一个需要调用的方法名称  v-on:click=”great”

内联处理器中的方法: 访问原始DOM,可以用特殊变量$event

修饰符:

.stop 阻止   .prevent  不重载页面   .capture  捕获模式  .once  只触发一次   .self 不是从自身出发的

可以串联使用,但是要注意顺序

按键修饰符:

Eg:  v-on:keyup.13  当按键值为13的时候才可以执行,

可以使用Vue.config.keyCodes.f1自定义修饰符别名

表单输入绑定

v-module

组件

  1. 全局注册:vue.component(tagName, options)  

      使用<my-component></ my-component>
  1. DOM模板解析注意事项

有些标签下面只能包含特定的元素,放入组件后会导致一些问题,这个时候采取

将:<table>

            <my-row>...</my-row>

   </table>

变成:<table>

                   <tr
is="my-row"></tr>

      </table>

  1. Prop

1)父组件通过prop想子组件下发数据,子组件中要显式的声明。

Vue.component('child', {

  props: ['message'],

  template: '<span>{{ message
}}</span>'

})

2)单项数据流

在子组件中改变prop的话控制台会报错。

Prop 作为初始值传入后,子组件想把它当作局部数据来用:定义一个局部变量,并用 prop 的值初始化它

Prop 作为原始数据传入,由子组件处理成其它数据输出:定义一个计算属性,处理 prop 的值并返回

注意在 JavaScript 中对象和数组是引用类型,指向同一个内存空间,如果 prop 是一个对象或数组,在子组件内部改变它会影响父组件的状态。

3)自定义事件

  • 使用v-on绑定自定义事件

使用 $on(eventName) 监听事件,使用 $emit(eventName,
optionalPayload) 触发事件

不能用$on监听子组件释放的事件,在模板里用v-on直接绑定

  • 给组件绑定原生事件

在某组件的根元素上监听原生事件,用v-on的修饰符.native

  • .sync修饰符

作为自动更新父组件属性的v-on监听器,<comp :foo="bar"
@update:foo="val => bar = val"></comp>

给对象一次设置多个属性:可以和v-bind一起使用

  • 表单输入组件

v-module实现数据的双向绑定,一般会使用value prop 和input事件

  • 非父子组件间的通信

使用一个空的Vue实例作为事件总线

var bus = new Vue()

// 触发组件 A 中的事件

bus.$emit('id-selected', 1)

// 在组件 B 创建的钩子中监听事件

bus.$on('id-selected', function (id) {

})

  • 使用插槽分发内容

<slot></slot>里的任何内容都被视为备用内容,只有在宿主元素为空的时候才会显示。有name属性来配置如何分发内容。slot-scope是一个可以重用的模板。

vue 2.0之基础的更多相关文章

  1. Vue 2.0入门基础知识之全局API

    3.全局API 3-1. Vue.directive 自定义指令 Vue.directive用于自定义全局的指令 实例如下: <body> <div id="app&quo ...

  2. Vue 2.0入门基础知识之内部指令

    1.Vue.js介绍 当前前端三大主流框架:Angular.React.Vue.React前段时间由于许可证风波,使得Vue的热度蹭蹭地上升.另外,Vue友好的API文档更是一大特色.Vue.js是一 ...

  3. Vue 2.0基础语法:系统指令

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. Vue初体验 新建一个空的项目,引入vue.js文件.写如下代码: &l ...

  4. 新手入门指导:Vue 2.0 的建议学习顺序

    起步 1. 扎实的 JavaScript / HTML / CSS 基本功.这是前置条件. 2. 通读官方教程 (guide) 的基础篇.不要用任何构建工具,就只用最简单的 <script> ...

  5. Vue.2.0.5-组件

    什么是组件? 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素, Vue.js 的编译器为它添加特殊功能.在 ...

  6. Vue 2.0初学后个人总结及分享

    摘要:最近在上海找工作,发现Vue前景还不错,于是就打算先学习一下(之前了解过,但是一直没提到日程上)这篇随笔当是为了自己学习之后,做一个小的阶段性总结.希望本文的内容对于刚开始接触vue的朋友们有点 ...

  7. vue.js2.0 自定义组件初体验

    理解 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素, Vue.js 的编译器为它添加特殊功能.在有些情况 ...

  8. vue cli3.0 结合echarts3.0和地图的使用方法

    echarts 提供了直观,交互丰富,可高度个性化定制的数据可视化图表.而vue更合适操纵数据. 最近一直忙着搬家,就没有更新博客,今天抽出空来写一篇关于vue和echarts的博客.下面是结合地图的 ...

  9. 新手向:Vue 2.0 的建议学习顺序

    新手向:Vue 2.0 的建议学习顺序 尤雨溪   1 年前 注:2.0 已经有中文文档 .如果对自己英文有信心,也可以直接阅读英文文档.此指南仅供参考,请根据自身实际情况灵活调整.欢迎转载,请注明出 ...

随机推荐

  1. Django学习-24-Ajax

    jQuery.Ajax是原生Ajax的封装,它能自动识别浏览器的Ajax对象HttpResponse(status='404',reason='Page Not Found') 原生Ajax使用Xml ...

  2. 异常-----freemarker.core.ParseException: Encountered "string"

    1.错误描述 freemarker.core.ParseException: Encountered "string" at line 21, column 21 in type. ...

  3. 【BZOJ4816】数字表格(莫比乌斯反演)

    [BZOJ4816]数字表格(莫比乌斯反演) 题面 BZOJ 求 \[\prod_{i=1}^n\prod_{j=1}^mf[gcd(i,j)]\] 题解 忽然不知道这个要怎么表示... 就写成这样吧 ...

  4. 【NOIP2009】【CJOJ1687】【洛谷1074】靶形数独

    题面 Description 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z博士请教,Z 博士拿出 ...

  5. ECharts组件应用样例代码

    一.从Echarts官网上下载最新版本组件 Echarts是百度开发的开源Web图表组件,界面美观,使用简单.组件下载地址:http://echarts.baidu.com/echarts2/doc/ ...

  6. Error:Execution failed for task ':app:processDebugGoogleServices'. > No matching client found for package name 'com.fortythree.sos.flashlight'

    Q:导入json文件时的包名不对 A:包名存在的位置是app build gradle中的applicationID

  7. 11.python线程

    基本概念 1.进程       定义: 进程就是一个程序在一个数据集上的一次动态执行过程. 组成:  进程一般由程序.数据集.进程控制块三部分组成. 程序:  我们编写的程序用来描述进程要完成哪些功能 ...

  8. ajax提交表单、ajax实现文件上传

    ajax提交表单.ajax实现文件上传,有需要的朋友可以参考下. 方式一:利用from表单的targer属性 + 隐藏的iframe 达到类似效果, 支持提交含有文件和普通数据的复杂表单 方式二:使用 ...

  9. SQL添加表字段

    通用式: alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数 增加字段: alter table [表名] add 字段名 smalli ...

  10. f.lux——自动调整屏幕色温减少眼睛疲劳,长时间玩电脑必备!

    长时间玩电脑的同学肯定会觉得眼睛很难受,而电脑自带的调节亮度的功能通常又不能够满足我们,所以今天就给大家推荐一个保护视力的软件—— flux,这个软件是通过调节色温来达到保护视力的作用,通常在台式机的 ...