Vue在组件上使用v-model代码及总结

发布时间:2024年01月18日

//v-model在组件上使用就相当于是父传子和子传父的结合,用$refs来将input的value返回修改v-model绑定的数据

//与一般的子传父相比,就不需要用函数来接收数据了

//缺点就是在添加后虽然成功修改数据,但是页面要渲染没有很好的方法,像我只能在那个组件用@keydown.enter来渲染了

<!DOCTYPE html>
<html lang="en">
<head>
? <meta charset="UTF-8">
? <meta name="viewport" content="width=device-width, initial-scale=1.0">
? <title>Document</title>
</head>
<body>
? <div id="app">
? ? <div>
? ? ? inputValue: {{ inputValue }}
? ? </div>
? ? <button @click="handleAppClick">获取组件中输入的数据</button>
? ? <todo-input v-model="inputValue"></todo-input>
? </div>

? <script src="./lib/vue.global.js"></script>
? <script>
? </script>
? <script>
? ? const todoInput = {
? ? ? template: `
? ? ? ? <div class="input">
? ? ? ? ? <input
? ? ? ? ? ? type="text"
? ? ? ? ? ? placeholder="请输入新待办事项"
? ? ? ? ? ? ref="inputRef"
? ? ? ? ? ? :value="modelValue"
? ? ? ? ? ? @input="handleAdd"
? ? ? ? ? >
? ? ? ? ? <button class="add" @click="handleAdd">添加</button>
? ? ? ? </div>
? ? ? `,
? ? ? props: ['model-value'],
? ? ? methods: {
? ? ? ? handleAdd() {
? ? ? ? ? this.$emit('update:model-value', this.$refs.inputRef.value)
? ? ? ? },
? ? ? },
? ? }

? ? Vue
? ? ? .createApp({
? ? ? ? data() {
? ? ? ? ? return {
? ? ? ? ? ? inputValue: ''
? ? ? ? ? }
? ? ? ? },
? ? ? ? methods: {
? ? ? ? ? handleAppClick() {
? ? ? ? ? ? console.log('点击父组件中按钮:', this.inputValue)
? ? ? ? ? },
? ? ? ? },
? ? ? })
? ? ? .component('todo-input', todoInput)
? ? ? .mount('#app')
? </script>
</body>
</html>

文章来源:https://blog.csdn.net/qq_52840130/article/details/135679476
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。