3.全局API

3-1. Vue.directive 自定义指令

Vue.directive用于自定义全局的指令

实例如下:

 <body>
<div id="app">
<p v-sq="color">{{message}}</p>
</div>
</body>
<script>
Vue.directive('sq', function (el, binding, vnode) {
el.style.color = binding.value;
});
var vm = new Vue({
el: "#app",
data: {
message: "前端工程师",
color: "red"
}
});
</script>

效果为p标签显示为红色,directive指令中的参数1(实例中的‘sq’)可以类比前篇文章内部指令的bind、on;参数2是一个回调函数,这个回调函数包含三个参数(el:即指令绑定的元素,实例中的el即为p元素;binding:包含指令的相关信息,可以通过console.log打印出来;vnode:即Vue编译生成的虚拟节点。虚拟节点即vue2.0中引入的新功能,用js对象替代DOM节点,改进直接操作DOM代价大引发的性能问题)。

指令都是有生命周期的,同样地,自定义指令有5个生命周期,分别是:bind、inserted、update、componentUpdated、unbind

3-2  Vue.extend 构造器的延伸

extend中文即延伸、扩展的意思。Vue.extend返回的即是一个“扩展实例构造器,并挂载到自定义元素上。

实例如下:

 <body>
<div id="app">
<p class="gz"></p>
</div>
<p class="gz"></p>
</body>
<script>
var author=Vue.extend({
template:"<a>最终解释权归作者所有</a>"
})
new author().$mount('.gz');
</script>

p标签会替换成template的值,但仅限于第一个p标签,因为只挂载了一次,实例中用的是class,将其换成id或标签同样适用。

3-3 Vue.set全局操作

Vue.set的作用就是在构造器外部操作构造器内部的数据、属性或者方法。Vue.set存在的意义是弥补js语言的缺陷,因为Vue不能自动检测数组的两种变动:1.利用索引设置一个元素;2.修改数组的长度。用Vue.set更新数据时,依次传入三个参数①数组名称②索引③元素

3-4 Vue的生命周期

Vue的生命周期即钩子函数。包括10共,按照顺序依次为:beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、activated、deactivated、beforeDastroy、destroyed。详细的结构图可参考vue官网的图例介绍。

3-5 Template模板

Template模板大致有三种写法:

1.类似前面讲到Vue.extend挂载时的template写法,但不是双引号包括内容,而是``(英文tab键)

2.利用template模板:<template></template>。这个类似于Backbone中模板的写法

3.在script标签中写入模板内容,不过此时type为"x-tempate".。这种写法可以将模板从外部导入。

另外需要强调一点、vue2.0中规定模板内容必须要要有一个根元素,一般地用div包裹住整个模板内容。

3-6 component组件

component组件本质上就是自定义的标签。component组件分为全局化注册组件和局部注册组件,两者的不同之处在于使用的范围(类比于全局变量和局部变量)。

3-6-1 component组件的注册

1.全局化注册组件

实例如下:

 <body>
<div id="app">
<plp></plp>
</div>
</body>
<script>
Vue.component('plp', {
template: `<a>最终解释权归作者所有</a>`
})
var vm = new Vue({
el: "#app"
})
</script>

2.局部注册组件

实例如下:

 <body>
<div id="app">
<plp></plp>
</div>
</body>
<script>
var vm = new Vue({
el: "#app",
components: {
'plp': {
template: `<p>最终解释权归作者所有</p>`
}
}
})
</script>

3-6-2 component组件的props属性

component组件的props属性就是用来设置和获取标签上的属性值。

实例如下:

 <body>
<div id="app">
<plp city="YiChang"></plp>
</div>
</body>
<script>
var vm = new Vue({
el: "#app",
components: {
'plp': {
props:['city'],
template: `<p>I like {{city}}</p>`
}
}
})
</script>

首先component组件的props选项通过['city']获取自定义标签该属性的值,然后在tepmlate中通过{{city}}插值的方法设置属性值。需要注意的一点是自定义标签的属性取值尽量避免使用'-',如有必要使用小驼峰命名,可以联想到通过原生JS设置元素的颜色;elements.style.backgroundColor,而不是element.style.background-color

component组件传值,使用:bind绑定即可。

3-6-3 component父子组件

component父子组件就是在一个component组件里再写一个component组件。

实例如下:

 <body>
<div id="app">
<plp :city="like"></plp>
</div>
</body>
<script>
var vm = new Vue({
el: "#app",
data: {
like: 'YiChang'
},
components: {
'plp': {
props: ['city'],
template: `<p>I like {{city}} <ppl></ppl></p>`,
components: {
'ppl': {
template: `<span style="color:red">very much!</span>`
}
}
}
}
})
</script>

实例中涉及到component组件嵌套,在plp组件中嵌套组件ppl。当然实际开发中组件的嵌套远比这个复杂,必要的时候可以在构造器外部定义声明局部component组件。

3-6-4 component标签

<component></component>标签是Vue框架自定义的标签,它的用途就是可以动态绑定我们的组件,根据数据的不同更换不同的组件。

好啦,关于Vue的全局API就介绍到这里,下一篇关于Vue的基础知识,我们聊聊Vue2.0的选项以及实例内置组件~

Vue 2.0入门基础知识之全局API的更多相关文章

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

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

  2. Greenplum入门——基础知识、安装、常用函数

    Greenplum入门——基础知识.安装.常用函数 2017年10月08日 22:03:09 在咖啡里溺水的鱼 阅读数:8709    版权声明:本文为博主原创,允许非商业性质转载但请注明原作者和出处 ...

  3. USB入门基础知识(转)

    源:USB入门基础知识 相关名词: 主机(Host) 设备(Device) 接口(Interface) 管道(Pipe) 管道是主机与设备端点数据传输的连接通道,代表了主机的数据缓冲区与设备端点之间交 ...

  4. React Native 入门基础知识总结

    中秋在家闲得无事,想着做点啥,后来想想,为啥不学学 react native.在学习 React Native 时, 需要对前端(HTML,CSS,JavaScript)知识有所了解.对于JS,可以看 ...

  5. Linux入门基础知识

    注:内容系兄弟连Linux教程(百度传课:史上最牛的Linux视频教程)的学习笔记. Linux入门基础知识 1. Unix和Linux发展历史 二者就像父子关系,当然Unix是老爹.1965年,MI ...

  6. 1)Linux程序设计入门--基础知识

    )Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编译 Makef ...

  7. Vue基础二之全局API、实例属性和全局配置,以及组件进阶(mixins)的详细教程(案列实现,详细图解,附源码)

    本篇文章主要是写Vue.directive().Vue.use()等常用全局API的使用,vm.$props.vm.$options.vm.$slots等实例属性的使用,以及Vue全局配置.组件的mi ...

  8. PHP基础入门(二)---入门基础知识必备

    前言 在上一章中,我们初步了解了PHP的网页基础和PHP的入门基础,今天继续给大家分享更多有关PHP的知识. 理论知识看起来可能比较枯燥一些,但是我们的实践(敲代码)毕竟离不开它. 只有理论与实践相结 ...

  9. React入门---基础知识-大纲-1

    -----------------在慕课网学习react入门笔记-------------- ---------博主边学边记录,手把手进行学习及记录---------- --------------- ...

随机推荐

  1. 微信公众号菜单与应用交互session

    http://www.cnblogs.com/yank/p/3476874.html http://blog.csdn.net/zmhawk/article/details/43671195 http ...

  2. POJ1094 Sorting It All Out —— 拓扑排序

    题目链接:http://poj.org/problem?id=1094 Sorting It All Out Time Limit: 1000MS   Memory Limit: 10000K Tot ...

  3. html5--6-9 CSS选择器6--伪类选择器

    html5--6-9 CSS选择器6--伪类选择器 实例 @charset="UTF-8"; /*:root{background: green}*/ /*li:first-chi ...

  4. 一步一步学Silverlight 2系列(8):使用样式封装控件观感

    述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  5. bzoj2004公交线路——DP+矩阵加速递推

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2004 求方案数,想到DP: 因为两个站间距离<=p,所以每p个站中所有车一定都会停靠至 ...

  6. Linux的终端类型

    终端是一个很重要的外设,用过终端设备的人都知道如果设备类型不对就会有乱字符,也可用仿真终端软件如netterm试验一下,Linux的终端信息放在 /usr/share/terminfo下,在这个目录的 ...

  7. django上课笔记3-ORM补充-CSRF (跨站请求伪造)

    一.ORM补充 ORM操作三大难点: 正向操作反向操作连表 其它基本操作(包含F Q extra) 性能相关的操作 class UserInfo(models.Model): uid = models ...

  8. 洛谷 - P2261 - 余数求和

    https://www.luogu.org/problemnew/show/P2261 看了一下题解,取模运算可以换成减法来做. $a\%b=a-b*\lfloor\frac{a}{b}\rfloor ...

  9. Codeforces Round #364 (Div. 2)【A,C】

    啊啊啊啊啊啊啊啊啊,目睹A->CⅠA全过,最终fstwaA,C;23333333 A题: 题意: 就是分成相等的m堆,每堆有两个位置上的值相加. 思路: fst在sum可能不是偶数,先*2/n; ...

  10. HDU 5101

    hdoj5101 lower_bound函数: 题意: 从两个不同集合拿出两个数,加的和大于k的可行的方案数 思路: 答案=从所有数中选择的两个加和大于k的数的方案数-在同一个集合中选择的两个加和大于 ...