【Vue.js 入门与实战】--指令-使用钩子函数的第二个binding参数拿到传递的值

简介: 一、自定义指令二、自定义字体颜色三、函数参数

指令-使用钩子函数的第二个binding参数拿到传递的值

 

目录

一、自定义指令

二、自定义字体颜色

三、函数参数

 

一、自定义指令

如果想要搜索框颜色发生改变,这是需要找到以下自定义指令

<input type=”text”class=”form-control”v-model=”keywords”id=”search”v-focus v-color>

//自定义一个设置字体颜色的指令:

Vue.directive('color',{

bind:function (el) {

el.style.color =’red’

}

})

设置样式的时候,不需要考虑有没有插入到DOM中,只要把样式通过指令绑定给元素,元素一旦被浏览器解析,无论这个元素是否被插入到页面中去,这个元素肯定有了一个内联的样式,元素一定会显示到页面中,浏览器的渲染引擎必然会解析样式,应用给元素。


演示效果:

image.png

bind:function(el){

el.focus()

}

inserted: function(el){

el.focus()

}

inserted ,元素从内存渲染到页面上时立即调用 focus 这时在页面中才能获得焦点。在 bind 中元素一加载到内存中,一绑定focus 指令,就会立即调用bind,这是在内存中调用 bind


js 有关的操作最好在 inserted 执行,防止 js 行为不生效。和样式相关的操作一般都可以在 bind 中执行

 

二、自定义字体颜色

上面的是把字体设置成了红色,如果想要自定义颜色,则需要:


<input type=”text”class=”form-control”v-model=”keywords”id=”search”v-focus v-color=”’blue’”>

//blue加单引号表示字符串,不加单引号表示为变量

bind:function (el,binding) {//自定义指令时,通过 binding 拿到值。

el.style.color =’red’

}

 

三、函数参数

钩子函数被赋予了以下参数:

el:指令所绑定的元素,可以用来直接操作DOM

binding:一个对象,包含以下属性:

1.name:指令名,不包括 v-前缀。

Vue.directive(‘color’,{

Bind:fuctione1binding){

e1.style.color='red'

Console.log(binding.name

image.png

此时显示的color就是我们制定的名称


2.value:指令的绑定值,例如:v-my-directive-"1+1”value 的值是2。如果获取原始的值,可使用 expression 方法。


3.expression:绑定值的字符串形式,例如:v-my-directive="1+1”,expression的值是"1+1”


4.arg:传给指令的参数,例如v-my-directive:fooarg的值是:’foo’

举例:

要获取

Console.log(binding.value)

Console.log(binding.expression)

image.png

可以看到,上面是bule,下面是字符串,所以我们需要用value

<input type=”text”class=”form-control”v-model=”keywords”id=”search”v-focus v-color=”’blue’”>中的blue,代码演示:

Bind:functionel binding{

el.style.color= binding. Value

}

})

其中把blue换成yellow,或者green尝试,发现可以变换成黄色和绿色,即以上代码正确无误。

 

 

相关文章
|
9天前
|
JavaScript
vue 函数化组件
vue 函数化组件
|
1月前
|
JavaScript 前端开发
vue3通过render函数实现一个菜单下拉框
【8月更文挑战第18天】vue3通过render函数实现一个菜单下拉框
87 0
|
25天前
|
JavaScript 前端开发
JavaScript基础知识-函数的参数
关于JavaScript函数参数基础知识的介绍。
18 4
JavaScript基础知识-函数的参数
|
4天前
|
JavaScript 前端开发
JavaScript 函数参数
JavaScript 函数参数
21 3
|
3天前
|
缓存
Vue3 的 computed 和 watch 函数有哪些不同?
Vue3 的 computed 和 watch 函数有哪些不同?
在 Vue3 中,如何使用 setup 函数创建响应式数据?
在 Vue3 中,如何使用 setup 函数创建响应式数据?
|
30天前
|
JavaScript
Vue3使用全局函数或变量的两种常用方式
这篇文章介绍了Vue 3中实现全局函数或变量的两种方法:一种是使用`provide/inject`进行依赖注入,另一种是利用`app.config.globalProperties`和`getCurrentInstance()`来注册全局属性。
185 2
Vue3使用全局函数或变量的两种常用方式
|
1月前
|
缓存 监控 JavaScript
vue从安装到熟练 2022流畅无痛版(第一季:入门篇)
该文章是《vue从安装到熟练 2022流畅无痛版》系列的第一季入门篇,介绍了Vue的基本概念、环境配置、项目创建与运行,并通过修改HelloWorld.vue和App.vue文件内容展示了如何在页面上显示"Hello World",最后还提供了Vue官方文档链接和介绍了Vue的常用内置指令和模板语法等基础知识。
vue从安装到熟练 2022流畅无痛版(第一季:入门篇)
|
1月前
|
JavaScript 前端开发
vue入门
vue入门
19 2
vue入门
|
1天前
|
JavaScript 前端开发 UED
组件库实战 | 用vue3+ts实现全局Header和列表数据渲染ColumnList
该文章详细介绍了如何使用Vue3结合TypeScript来开发全局Header组件和列表数据渲染组件ColumnList,并提供了从设计到实现的完整步骤指导。