Vue.js 3在方法内带有ref的输入上使用自动聚焦
我使用的是Vue2,但我最近尝试了Vue 3。
我有一个简单的问题:
<input ref="myinput" />
<button @click="submitData" />
我要在函数&submitData";内部将";焦点";设置在";myinput";上。
在Vue 2中很简单(这个.$refs...),但在Vue 3中,他们把它变得复杂了。
我看到了";Setup";的示例,但对我没用,因为我认为您只能从元素访问";Value&Quot;。
有没有办法在方法内部的元素上执行&Quot;Focus&Quot;on?
解决方案
您仍然可以使用Vue 3执行相同的操作,但如果您使用Compostion API,则会有所不同:
选项接口:
数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">const {
createApp
} = Vue;
const App = {
data() {
return {
}
},
methods: {
submitData() {
this.$refs.myinput.focus()
}
},
mounted() {
}
}
const app = createApp(App)
app.mount('#app')
<script src="https://unpkg.com/vue@3.0.0-rc.11/dist/vue.global.prod.js"></script>
<div id="app">
Vue 3 app
<input ref="myinput" />
<button @click="submitData">
Submit
</button>
</div>
组合接口:
数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">const {
createApp,
ref,
onMounted,
} = Vue;
const App = {
setup() {
const myinput = ref(null)
function submitData() {
myinput.value.focus()
}
return {
myinput,
submitData
}
}
}
const app = createApp(App)
app.mount('#app')
<script src="https://unpkg.com/vue@3.0.0-rc.11/dist/vue.global.prod.js"></script>
<div id="app">
Vue 3 app
<input ref="myinput" />
<button @click="submitData">
Submit
</button>
</div>
相关文章