vue学习笔记:3.自定义指令
2019-01-09 12:44
211 查看
1.自定义指令——全局指令
使用 Vue.directive() 定义全局指令
其中:参数1: 指令的名称,注意,在定义的时候,指令的前面不需要加 v- 前缀;参数2:是一个对象,这个对象身上,有一些指令相关的函数,这些函数可以在特定的阶段执行相关的操作。
2.自定义指令——私有指令
使用directives: {}定义私有指令
Html
<!-- 注意: Vue中所有的指令,在调用的时候,都以 v- 开头 --> <div id="app2"> <input type="text" class="form-control" id="search" v-focus v-color> <input type="text" class="form-control" id="search" v-focus v-color="'blue'"> </div>
Js
(1)全局指令
// 自定义一个获取文本框焦点的指令 v-focus Vue.directive('focus', { bind: function(el) { //每当指令绑定到元素上的时候,会立即执行这个 bind 函数,只执行一次 // 注意:在每个函数中,第一个参数,永远是el,表示被绑定了指令的元素,这个el参数,是一个原生的js对象 // 在元素刚绑定了指令的时候,还没有插入到DOM中去,这时候,调用 focus 方法没作用 // 因为,一个元素,只有插入DOM之后,才能获取焦点 // el.focus(); }, inserted: function(el) { //表示元素插入到DOM中的时候会执行,只触发一次 el.focus(); // 和 JS 行为相关的操作,最好写在 inserted 中去执行,防止 JS 行为不生效 }, updated: function(el) { //当VNode更新的时候会执行,可能会触发多次 } }); // 自定义一个为文本框设置字体颜色的指令 v-color Vue.directive('color', { // 样式只要通过指令绑定给了元素,不管元素有没有被插入到页面中去,这个元素一定有了一个内联样式 // bind: function(el) { // 和样式相关的操作可以定义在 bind 中 // el.style.color = 'red'; // } bind: function(el, binding) { console.log(binding.name, binding.value, binding.expression); el.style.color = binding.value; } });
(2)私有指令
var vm2 = new Vue({ el: '#app2', data: { dt: new Date() }, directives: { // 自定义私有指令 'fontweight': { // 设置字体大小 bind: function(el, binding) { el.style.fontWeight = binding.value; } }, 'fontsize': function(el,binding) { // 注意:这个 function 等同于把代码写到了 bind 和 update 中去 el.style.fontSize = parseInt(binding.value) + 'px'; } } })
相关文章推荐
- Vue 2.0学习笔记:自定义指令
- vue学习笔记6 Vue.directive自定义指令
- 【音乐App】—— Vue-music 项目学习笔记:推荐页面开发
- Sharepoint学习笔记 –架构系列—Sharepoint的服务器端对象模型(Server Object Model) 3.服务层次结构
- Spring 学习笔记 3. 尚硅谷_佟刚_Spring_配置 Bean
- vue学习笔记
- Vue 学习笔记 — 无法避免的dom操作
- vue学习笔记4——route,路由跳转等
- Vue学习笔记之表单输入控件绑定
- Vue学习笔记
- VueJs 学习笔记
- Vue 学习笔记 — 组件初始化
- Vue 学习 第六天学习笔记
- Hadoop学习笔记--3.Hadoop源代码eclipse编译教程
- 学习笔记:Vue
- Java并发编程学习——《Java Concurrency in Practice》学习笔记 3.对象的共享
- vue学习笔记1-基本知识
- vue笔记之自定义指令
- vue.js学习笔记--遇到的那些问题
- vue.js学习笔记第一季-基础指令集(JS胖老师课程)