使用 Typescript 将 Vue/JS 元素引用分配给常量
Assigning Vue/JS element ref to a const with Typescript
我有一个包含一个表单元素和一个按钮元素的模板:
<button
type="submit"
id="ms_sign_in_submit"
ref="submitButton"
class="btn btn-lg btn-primary w-100 mb-5">
</button>
我在脚本中 const
调用了 submitButton
。
const submitButton = ref<HTMLButtonElement | null>(null);
submitButton
元素 (id="ms_sign_in_submit"
) 以某种方式从 assigned/inherited(?) 变为 submitButton.value
,但我不明白如何实现。 submitButton
元素从未明确分配给 submitButton
const
.
Vue 自动 将模板引用分配给 ref
并使用从 setup()
挂钩返回的匹配名称,如以下代码所示:
<template>
<button ref="submitButton">Submit</button>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue'
export default defineComponent({
setup() {
const submitButton = ref<HTMLButtonElement | null>(null);
return { submitButton }
} /* automatically assigned to template ref of same name */
})
</script>
模板引用分配不是您自己明确要做的事情。
听起来 const
可能有些混乱。即使 submitButton
是一个 const
对象,它的 value
属性 仍然可以修改。这适用于所有 const
不是 frozen (Object.freeze()
) or declared with const
assertions (as const
) in TypeScript (demo) 的对象。
我有一个包含一个表单元素和一个按钮元素的模板:
<button
type="submit"
id="ms_sign_in_submit"
ref="submitButton"
class="btn btn-lg btn-primary w-100 mb-5">
</button>
我在脚本中 const
调用了 submitButton
。
const submitButton = ref<HTMLButtonElement | null>(null);
submitButton
元素 (id="ms_sign_in_submit"
) 以某种方式从 assigned/inherited(?) 变为 submitButton.value
,但我不明白如何实现。 submitButton
元素从未明确分配给 submitButton
const
.
Vue 自动 将模板引用分配给 ref
并使用从 setup()
挂钩返回的匹配名称,如以下代码所示:
<template>
<button ref="submitButton">Submit</button>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue'
export default defineComponent({
setup() {
const submitButton = ref<HTMLButtonElement | null>(null);
return { submitButton }
} /* automatically assigned to template ref of same name */
})
</script>
模板引用分配不是您自己明确要做的事情。
听起来 const
可能有些混乱。即使 submitButton
是一个 const
对象,它的 value
属性 仍然可以修改。这适用于所有 const
不是 frozen (Object.freeze()
) or declared with const
assertions (as const
) in TypeScript (demo) 的对象。