首页 > 其他分享 >Vue2 自定义属性

Vue2 自定义属性

时间:2022-10-03 13:37:11浏览次数:48  
标签:调用 自定义 binding focus element 指令 Vue2 属性

概述

vue 中不不仅仅有官方提供的指令,用户还可以根据自己的需要进行自定义指令。

比如当我们需要一个常用的操作将文字改为蓝色,如果我们需要修改大量标签时,就可以使用自定义指令。免去修改每一个标签的麻烦。

私有自定义指令

我们可以在 directives 节点下声明私有自定义属性。

在自定义指令的函数中,this指向的时window。

函数式:指令与元素成功绑定时和指令所在模板重新解析时都会调用。

<body>
	<div id="app">
		<h2 class="myh2" v-color="'pink'">test directives</h2>
	</div>
</body>
<script src="https://cdn.jsdelivr.net/gh/brokyz/cdn/vue/vue-2.7.10.js"></script>
<script>
	const vm = new Vue({
		directives: {
			color(element, binding) {
				// element是当前绑定的DOM元素,binding是一个存于着当前自定义属性相关参数的对象
				console.log(element, binding);
				element.style.color = binding.value
			}
		}
	}).$mount("#app")
</script>

对象式:可以分别指定不同阶段所调用的函数。

<body>
	<div id="app">
		<input type="text" v-focus :value="n"><br>
		<button @click="n++">更新页面模板</button>
	</div>
</body>
<script src="https://cdn.jsdelivr.net/gh/brokyz/cdn/vue/vue-2.7.10.js"></script>
<script>
	const vm = new Vue({
		data: {
			n: 1,
		},
		directives: {
			focus: {
				// 指令与元素成功绑定时调用
				bind(element) {
					element.focus()
				},
				// 指令所在元素被插入页面时调用
				inserted(element) {
					element.focus()
				},
				// 指令所在的模板被重新解析时调用
				update(element) {
					element.blur()
				},
			}
		}
	}).$mount("#app")
</script>

多个自定义指令单词用 - 隔开

<body>
	<div id="app">
		<input type="text" v-focus-element :value="n"><br>
		<button @click="n++">更新页面模板</button>
	</div>
</body>
<script src="https://cdn.jsdelivr.net/gh/brokyz/cdn/vue/vue-2.7.10.js"></script>
<script>
	const vm = new Vue({
		data: {
			n: 1,
		},
		directives: {
			'focus-element': {
				// 指令与元素成功绑定时调用
				bind(element) {
					element.focus()
				},
				// 指令所在元素被插入页面时调用
				inserted(element) {
					element.focus()
				},
				// 指令所在的模板被重新解析时调用
				update(element) {
					element.blur()
				},
			}
		}
	}).$mount("#app")
</script>

全局自定义指令

Vue.directive('color', function(el, binding) { 
  el.style.color = binding.value
})

标签:调用,自定义,binding,focus,element,指令,Vue2,属性
From: https://www.cnblogs.com/brokyz/p/16750382.html

相关文章

  • Vue2 组件
    非单文件组件(过渡)非单文件组件就是指并非一个组件占用一个文件,而是一个人间中有多个组件。我们只将其作为学习的过度,实际开发中不适用这种方式。demo:<body> <divid="a......
  • Vue2 生命周期
    Vue生命周期概述在使用Vue时,我们需要执行一些JS代码。比如我们需要在页面中添加一个定时器来固定间隔更新时间。这时我们可能会想到直接在,Vue实例外书写JS代码......
  • Vue2 插槽
    Vue插槽概述插槽就是组件内的一个预留区域,它允许使用者向组件内的预留区域来添加自己想要的内容。比如我们已经写好了一个组件,然后以后可能会在指定区域插入广告,这时就......
  • Vue2 mixins混入
    概述在Vue中我们的很多组件的配置都会有共用的数据,方法,钩子等等,我们可以把这些共用的部分提取到一个js文件中,并导入到需要使用的组件中,通过mixins配置项进行使用。......
  • Vue2 插件
    概述Vue的插件就是一个js文件,里面允许我们完成一些特定的功能。使用创建一个插件plugins.jsexportdefault{install(Vue){//全局过滤器Vue.filt......
  • Vue2 动画与过渡
    概述Vue为我们优化了CSS动画在Vue中的使用,帮助我们在使用动画的时候更加的得心应手。使用CSS动画完成Vue动画<template><divid="app"><button@cli......
  • Vue2 指令操作
    概述指令是vue为开发者提供的模板语法,用于辅助开发者渲染页面的基本结构。vue中的指令按照不同的用途可分为如下6大类:内容渲染指令。属性绑定指令。事件绑定指......
  • Vue2 计算属性
    概述计算属性指的是通过一系列运算之后,最终得到一个属性值。间的的理解,当我们拥有一些数据时,我们需要将这些数据整合到一起,这时候计算属性就会完成这个操作,整合到一起的......
  • Vue2 props
    props概述我们的组件进行展示数据时,里面并不是都是写死的。我们需要在使用组件时,向组件内部传值,并展现我们需要的值。数组形式接收propsTestProps.vue<template> ......
  • spring boot 自定义线程池与使用
    一、进行线程池创建importcn.hutool.core.thread.ThreadFactoryBuilder;importlombok.extern.slf4j.Slf4j;importorg.springframework.aop.interceptor.AsyncUncaug......