vue的全局指令
vue有四个全局指令:directive、extent、set、component
directive:自定义指令
//写一个改变颜色的指令
Vue.directive('amie',function(el,binding,vnode){
el.style='color:'+binding.value;
}); //HTML
<div v-amie="'red'"></div>
可以看出其实指令的实际是操作dom元素,第一个参数就是element,第二个是参数是传给指令的值,第三个。。。。
extent:作用和组件差不多,但是每次挂载都要new一次在$mount挂载(可以挂载到实例范围以外的地方),不像组件那样可以多次复用不需要new
var authorExtend = Vue.extend({
template:"<p><a :href='authorUrl'>{{authorName}}</a></p>",
data(){
return{
authorName:'amie',
authorUrl:'http://www.qq.com'
}
}
});
//挂载
new authorExtend().$mount('.author'); //HTML
<div class="author"></div>
set:改变Vue实例data的值
Vue.set(dataObj,'count',4);
一般我们会用 vm.data1 = 123 这样来修改,这样没问题
但是修改的数据是Object类型的属性值,Vue是检测不了变化的(这是受限于js的内部机制)
例如:vm.dataObj.count = 4来改变值,Vue检测不了dataObj.count的变化从而没办法在dom更新
这个时候用set就可以告诉Vue改变了data中dataObj的count属性
component:定义全局组件,在任意Vue实例内都可以使用
Vue.component('zhangamie',{
template: `<div>
{{ name }}
</div>`,
data() {
return {
name: '小咩咩'
}
}
})
mixin:全局混入选项(混入的选项和原来的并存)
Vue.mixin({
data() {
return {
newData: 999
}
}
})
以后所有新建的Vue实例都会在它们的data里面混进这个newData,但是如果这个newData在实例中再次被定义,会被实例中的data覆盖
先后顺序是:全局的mixin-->局部-->原生的mixin,顺序后的会覆盖顺序前的(覆盖只会覆盖选项内部的值,不会覆盖整个选项)
vue的全局指令的更多相关文章
- vue自定义全局和局部指令
一.介绍 1.除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令. 2.自定义指令的分类 1.全局指令 2.局部指令 3.自定义全局指令格式 V ...
- vue.js(14)--自定义全局指令
<input type="text" class="form-control" v-model="keywords" v-focus& ...
- Vue.directive添加全局指令详解
自定义指令创建: Vue.directive( 'mycolor(指令名称:推荐全部小写,驼峰命名会出现问题,看最后面)' , { bind:function(){}, //本例只介绍inserted ...
- vue.js自定义指令入门
Vue.js 允许你注册自定义指令,实质上是让你教 Vue 一些新技巧:怎样将数据的变化映射到 DOM 的行为.你可以使用Vue.directive(id, definition)的方法传入指令id和 ...
- vue 通过自定义指令实现 置顶操作;
项目需求:要求当前项目每个页面滑到超出一屏的距离时,出现 backTop 按钮,点击则回到最顶端:俗称置顶操作: 因为涉及到的页面较多,每个页面都加肯定显得重复累赘,最终想到了 Vue 的自定义指令 ...
- 生命周期函数以及vue的全局注册
beforeCreate 在创造实例之前 created 创造实例以后 beforeMount 在挂载前 render 渲染节点到页面上 //将虚拟dom数组渲染出来 mounted 挂载以后 bef ...
- Vue(九) 自定义指令
前面介绍了许多 Vue 内置的指令,比如 v-if.v-show等,这些丰富的指令能满足我们绝大部分的业务需求,不过在需要一些特殊功能时,我们仍然希望对 DOM 进行底层的操作,这时就要用到自定义指令 ...
- Vue.directive自定义指令
Vue除了内部指令,我们也可以定义一些属于自己的指令,比如我们要定义一个v-diy的指令,作用就是让文字变成红色. 写好了这个功能,我们现在就自己定义一个全局的指令.我们这里使用Vue.directi ...
- 2.0 vue内置指令与自定义指令
1.1 常用内置指令 1) v:text : 更新元素的 textContent 2) v-html : 更新元素的 innerHTML 3) v-if : 如果为 true, 当前标签才会输出到页 ...
随机推荐
- QQ测试计划
- Mininet-wifi安装和简单使用
Mininet-WIFI安装和简单使用 安装 git clone https://github.com/intrig-unicamp/mininet-wifi cd mininet-wifi sudo ...
- b6
吴晓晖(组长) 过去两天完成了哪些任务 对手写输入进行了重构,然后重新捋了一下bayes的思路 展示GitHub当日代码/文档签入记录 接下来的计划 推荐算法 还剩下哪些任务 组员:刘帅珍 过去两天完 ...
- Leetcode题库——4.寻找两个有序数组的中位数
@author: ZZQ @software: PyCharm @file: findMedianSortedArrays.py @time: 2018/10/10 19:24 说明:给定两个大小为 ...
- Reaction to 构造之法 of Software Engineering From The First Chapter toThe Fifth Chapter(补充版)
几个星期前,我阅读过一篇文章,一位老师教导自己的学生要积极地去阅读文学文献,其中,我很欣赏他的一句话:“Just think of liturature as if you're reading a ...
- 0422数学口袋精灵bug发现
团队成员的博客园地址: 蔡彩虹:http://home.cnblogs.com/u/caicaihong/ 曾治业:http://www.cnblogs.com/zzy999/ 蓝叶:http://w ...
- SQL中字符串截取、连接、替换等函数的用法
一.SQL中SUBSTRING函数的用法1.功能:返回字符.二进制.文本或图像表达式的一部分2.语法:SUBSTRING ( expression, start, length )3.QL 中的 su ...
- screen.height && screen.width
screen.height && screen.width how to get window max width in js screen.height; screen.width; ...
- Memcache服务器端+Redis服务器端+PHP Memcache扩展+PHP Memcached扩展+PHP Redis扩展+MemAdmin Memcache管理工具+一些概念(更新中)
Memcache和Redis因为操作简单,是我们常用的服务器数据缓存系统,以下文字仅作备忘记录,部份转载至网络. 一.定义 1.Memcache Memcache是一个高性能的分布式的内存对象缓存系统 ...
- sqlserver中where条件加判断
我想实现如下功能: where case when (@a = null) then 1 = 1 else @a=a and b=@b 但是这样报错,经过翻阅资料找到如下解决方案: where (1 ...