【问题标题】:JS/Vue: Confirming a class is part of a public API?JS/Vue:确认一个类是公共 API 的一部分?
【发布时间】:2021-11-04 17:38:30
【问题描述】:

我在我的 Vue 应用程序中使用标签库,我需要更改 tabindex 并添加一个 eventListener,但我没有可访问的模板来添加自定义 eventListener,因为它是从库中导入的组件(@ 987654321@)。我的解决方法是使用 vanilla JS 按类 ti-new-tag-input 获取元素,然后将 tabIndex 设置为该元素。如何确认 ti-new-tag-input 是该库的公共 API 的一部分,以便确保它不会更改?

【问题讨论】:

    标签: vue.js vuejs2 components


    【解决方案1】:

    您应该可以直接在vue-tags-input 组件上设置tabindex。 在源代码中您可以看到,$attrs 绑定到输入元素,这意味着 tabindex 也应该绑定到您描述的元素。

    https://github.com/JohMun/vue-tags-input/blob/master/vue-tags-input/vue-tags-input.vue#L124

    <vue-tags-input
      v-model="xxx"
      tabindex="1"
    />
    

    【讨论】:

    • 嘿@tho-masn,谢谢!我刚刚更新了我的问题,因为我意识到我不仅要更改 tabindex,还要在其上添加一个 eventListener,以便在按下某些键时进行一些自定义调用。这就是为什么我要学习该课程,但我只是想确保该课程是公共 API 的一部分
    • 哦,我明白了。对于事件侦听器,您可以使用 refs,例如 $refs.refNameOfYourVueTagsInputComponent.$refs.newTagInput。它也不是一个公共 API,但它不太可能更改 ref,而不是更改 css 类。
    • 谢谢!我正在考虑这种方法,但不知道这样访问嵌套引用是否是不好的做法?
    • 其实这是不好的做法。但是依赖嵌套组件的 css 类更糟糕,所以它可能是你能得到的最稳定的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 1970-01-01
    • 2021-01-10
    • 2020-11-20
    • 1970-01-01
    相关资源
    最近更新 更多