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, 当前标签才会输出到页 ...
随机推荐
- 初步认识CNN
1.机器学习 (1)监督学习:有数据和标签 (2)非监督学习:只有数据,没有标签 (3)半监督学习:监督学习+非监督学习 (4)强化学习:从经验中总结提升 (5)遗传算法:适者生存,不适者淘汰 2.神 ...
- Thunder-Beta发布-事后诸葛亮会议-2017秋-软件工程第十一次作业
小组名称:Thunder项目名称:爱阅APP小组成员:王航 李传康 翟宇豪 邹双黛 苗威 宋雨 胡佑蓉 杨梓瑞一.设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有 ...
- SpringMvc跨域支持
SpringMvc跨域支持 在controller层加上注解@CrossOrigin可以实现跨域 该注解有两个参数 1,origins : 允许可访问的域列表 2,maxAge:飞行前响应的缓存持续 ...
- apm server
目录 1.apm的tomcat启动失败解决方法 2.apm的mysql修改root密码的方法 内容: 1.apm的tomcat启动失败解决方法 APMServ5.2.6 无法启动Apache的一个问题 ...
- 读书笔记之java编程思想2
今天将第一章余下的部分读完了,余下部分讲解了java单继承的特点,单继承保证了所有的子类都有一个基类,这使得java所实现的垃圾回收器的实现变得简单了很多,单继承保证了所有的对象都具有一些功能,使得参 ...
- delphi 删除字符串的回车、空格、Tab键
myStr:=StringReplace(myStr, chr(13)+chr(10), '', [rfReplaceAll]);//删除回车 myStr:=StringReplace(my ...
- SCRIPT7002: XMLHttpRequest: 网络错误 0x2efe, 由于出现错误 00002efe 而导致此项操作无法完成
google中带中文参数可能查询,但是在IE带中文参数不能查询:报如下错误 SCRIPT7002: XMLHttpRequest: 网络错误 0x2efe, 由于出现错误 00002efe 而导致此项 ...
- mysql 时间格式化参数表笔记
DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据. 语法: DATE_FORMAT(date,format) 实例: DATE_FORMAT(NOW(),'%b %d %Y %h:% ...
- sublinme 快捷键格式
{"keys": ["ctrl+shift+f"], "command": "reindent" , "arg ...
- 2013杭州网赛 1001 hdu 4738 Caocao's Bridges(双连通分量割边/桥)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4738 题意:有n座岛和m条桥,每条桥上有w个兵守着,现在要派不少于守桥的士兵数的人去炸桥,只能炸一条桥 ...