当前位置: 首页 > 知识库问答 >
问题:

javascript - vue 如何动态的给子组件设置不同的指令?

蓝宜
2023-09-20

比如我创建了几个指令
v-number,v-text
来限制输入不同的文本

此时我遍历生成子组件的时候,要根据不同的type来配置不一样的指令,这个需求要如何实现?

如果我的指令还包含参数,比如可以通过下面不同的字段
v-input:numberv-input:text
在指令内部进行处理

但是主要问题还是在于动态渲染组件的时候如何动态配置不同的指令,以及指令不同的传参?

共有1个答案

甄志
2023-09-20
Vue.directive('input', {  bind(el, binding) {    if (binding.arg === 'number') {      // 数字输入处理      el.addEventListener('input', function(e) {        e.target.value = e.target.value.replace(/[^0-9]/g, '');      });    } else if (binding.arg === 'text') {      // 文本输入处理    }  }});

组件里:

<template>  <div>    <div v-for="item in items" :key="item.id">      <input :v-input="item.directive" />    </div>  </div></template><script>export default {  data() {    return {      items: [        { id: 1, type: 'number', directive: { arg: 'number', value: '' } },        { id: 2, type: 'text', directive: { arg: 'text', value: '' } }      ]    };  }};</script>
 类似资料:
  • 问题内容: 用语言很难解释这种情况,让我举一个例子: 如何在JavaScript对象中设置具有变量值的变量属性? 问题答案: 那应该工作。您混合了变量的名称及其值。但是用字符串索引对象以获取其属性可以在JavaScript中很好地工作。

  • 问题内容: 将组件存储在变量中后,需要设置组件的道具,这是伪代码: 在内部,我运行一个循环,需要为存储在变量内的组件设置道具…。如何为之前存储在变量中的该组件设置道具? 问题答案: 正确的方法是使用React的cloneElement方法(https://facebook.github.io/react/docs/react- api.html#cloneelement )。您可以通过执行以下操作

  • 我试图部署一个Vue应用程序,它有一个单独的后端,并将托管在不同的域。例如: 喵喵。猫xyz(应用程序) 现在,在之后,我试图通过运行在本地预览它,而应用程序正在本地主机上断开:5000。但是,问题在于它没有在当前endpoint(即本地的,服务器的)发送API请求。我尝试了如下配置CORS vue.config.js .env.development 请注意,我使用axiox。这是我的axios

  • 本文向大家介绍vue给组件传递不同的值方法,包括了vue给组件传递不同的值方法的使用技巧和注意事项,需要的朋友参考一下 这里讲解一下Vue 官网的一个实例,Vue将数据遍历传递给多个组件,这个是我们实际开发中常做的事情。一般大型应用都是使用组件搭建起来的,我们需要给组件传递不同的值,来实现不同的展现,实现代码的复用。 代码分析: 这里我直接使用了一个Vue的CDN,然后实例化Vue对象就可以使用。

  • 如何设置父组件的状态从子组件内部的反应?子组件只是一个我想设置组件状态的函数。

  • 父组件动态传递ref给子组件应该怎么写? 父组件调用 子组件 这里我想把父组件传递的ccc动态给子组件,然后操作子组件?