<div id="app">
<input type="text" v-limit.3="msg" v-focus>
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script>
Vue.directive("focus",{
/* 方法一*/
/*
bind(el){
Vue.nextTick(function(){ // 在dom元素执行完之后执行
el.focus();
});
}*/
/* 方法二 */
inserted(el){ //绑定元素插入父节点时调用
el.focus();
}
}); Vue.directive("limit",function(el,bindings,vnode){
/*
el:元素
bindings:元素绑定的值
vue dom的更新是异步的
*/
console.log(el);
console.log(bindings);
console.log(vnode);
let [,len] = bindings.rawName.split(".");
/*思想就是 把在文本框输入的值手动改到虚拟dom中,在虚拟dom 中改变 vlaue的值*/
let ctx = vnode.context;
el.addEventListener("input",(e)=>{
let val = e.target.value.slice(0,len)
ctx[bindings.expression] = val;
console.log("ctx:",ctx[bindings.expression]);
el.value = val;
});
// el.value = ctx[bindings.expression].slice(0,len);
}); /*
Vue.directive("limit",{
//初始化的时候绑定
bind(el,bindings,vnode) {
let ctx = vnode.context;
ctx[bindings.expression]= el.value.slice(0,5);
},
//数据更新的时候绑定
update(el,bindings,vnode) {
let ctx = vnode.context;
ctx[bindings.expression]= el.value.slice(0,5);
}
});
*/
let vm = new Vue({
el:"#app",
data:{
msg:"hello vue"
}
});
</script>

vue基础----自定义组件directive ,bind,update,insert的更多相关文章

  1. 四、vue基础--自定义组件

    1.语法:Vue.component("组件名字",{data,template}),代码如下: a. data: 必须是一个函数,有一个返回值.和vue里面的使用方法一样 b. ...

  2. vue中自定义组件(插件)

    vue中自定义组件(插件) 原创 2017年01月04日 22:46:43 标签: 插件 在vue项目中,可以自定义组件像vue-resource一样使用Vue.use()方法来使用,具体实现方法: ...

  3. 【VUE】自定义组件

    [VUE]自定义组件 转载: ============================================ ======================================== ...

  4. Vue基础-自定义事件的表单输入组件、自定义组件的 v-model

    Vue 测试版本:Vue.js v2.5.13 学习 Vue 的自定义事件的表单输入组件,觉得文档讲的不太细致,所以这里再细化一下: 如果不用 v-model,代码应该是这样: <myinput ...

  5. vue之自定义组件

    除了核心功能默认内置的指令外,vue也允许用户注册自定义指令.虽然在vue2.0中,代码复用和抽象的主要形式是组件,但是有些情况下,我们仍需要对普通DOM元素进行底层操作,这个时候就需要用到自定义指令 ...

  6. vue的自定义组件和组件传值

    <div id="app"> <div>{{pmessage}}</div> //父组件 <child :message="pm ...

  7. vue 相邻自定义组件渲染错误正确的打开方式

    话不多说看问题: 当封装自定义组件时例如(自定义下拉列表)两个相同的组件在多次v-if变化时偶尔会发生渲染错误,明明赋值正确但是组建中的ajax方法可能返回的数据乱掉,或者其他神逻辑错误. 经过查询发 ...

  8. 编程小白入门分享五:Vue的自定义组件

    前言 上篇博客简单介绍了vue,本篇博客要在对vue有一定了解后,才可以比较容易理解自定义组件.想要封装好一个组件,一定要熟练掌握这三个技能,父组件 -> 子组件传值(props).子组件 -& ...

  9. vue基础:组件的创建方式和组件的data值

    vue组件是什么: 组件是可复用的 Vue 实例,组件可以进行任意次数的复用 vue组件创建方式有3种: //第一种创建组件的方式// Vue.extend创建全局组件var com1 = Vue.e ...

随机推荐

  1. iOS天气动画、高仿QQ菜单、放京东APP、高仿微信、推送消息等源码

    iOS精选源码 TYCyclePagerView iOS上的一个无限循环轮播图组件 iOS高仿微信完整项目源码 想要更简单的推送消息,看本文就对了 ScrollView嵌套ScrolloView解决方 ...

  2. Hashtable和Hashmap的区别?

    1.实现的继承的父类不同 Hashtable继承Dictionary类    HashMap继承abstractMap类 两个类都实现了Map接口 2.线程安全性不同 Hashmap线程是不安全的 H ...

  3. JavaScript学习总结(四)function函数部分

    转自:http://segmentfault.com/a/1190000000660786 概念 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. js 支持两种函数:一类是语言内部的函数 ...

  4. 如何创建Hexo站点的Tags和Categories默认页面

    安装Hexo的categories生成插件 1 $ npm install hexo-generator-category --save 安装Hexo的Tags生成插件 1 $ npm install ...

  5. pycharm全局搜索快捷键无反应

    原因:和搜狗输入法的快捷键冲突

  6. vue日常问题总结

    1.Vue项目启动后首页URL带的#该怎么去掉? vue-router中默认使用的是hash模式,URL中带有#号,我们可以用如下代码修改成history模式: import Vue from 'vu ...

  7. Spring 错误 cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'context:property-placeholder'.

    我来说下这个出错的原因吧 eclise中xsd的验证问题Description Resource Path Location Type cvc-complex-type.2.4.c: The matc ...

  8. HexoC++第04课 构造析构.md

    C++第04课 构造析构.mdhtml {overflow-x: initial !important;}#write, body { height: auto; } #write, #write h ...

  9. numpy学习总结

    Contents Numpy是一个用python实现的科学计算包,主要提供矩阵运算的功能,而矩阵运算在机器学习领域应用非常广泛,Numpy一般与Scrapy.matplotlib一起使用. Numpy ...

  10. C++扬帆远航——8(张三李四,等差数列)

    /* * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:qiudengcha数列.cpp * 作者:常轩 * 完成日期: ...