IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue3.x中v-model学习记录 -> 正文阅读

[JavaScript知识库]vue3.x中v-model学习记录

目录

一、v-model用在哪里

二、v-model的具体使用

1、用在单组件中(不需要跨组件传递消息)

2、用在父子组件中(需要跨组件传递消息)

步骤Ⅰ

步骤Ⅱ

总结:

Tips:


一、v-model用在哪里

v-model是vue中实现数据双向绑定的一种方式,主要用在两个方面

(1)在组件中,如果存在部分需要响应实时输入的部件,如input,如需要对input中的内容输入或者删改可以做出及时的反应,类似搜索引擎的推荐建议等,

(2)在嵌套组件中,父组件和子组件共用一个状态值,且二者都对该状态值有修改或者获取显示的需求,那么同样可以使用v-model,实现实时的响应,如页面上存在一个模态窗口,而该模态窗口的值的改变需要实时显示在父组件的一个区域内。

二、v-model的具体使用

1、用在单组件中(不需要跨组件传递消息)

单组件中,可以直接利用v-model绑定data:如下

<template>
  <div>
    <input type="text" v-model="inputval" />
    <p>{{ inputval }}</p>
  </div>
</template>
<script setup lang='ts'>
//模块
//组件
//方法
import { watch, ref } from "vue"
//类型

const inputval = ref('')

// 监听变化时的操作
watch(inputval, (newval, oldvalue) => {
  console.log(inputval.value.length);
})

</script>
<style scoped>
</style>

2、用在父子组件中(需要跨组件传递消息)

步骤Ⅰ

首先需要在父组件中创建绑定值,有两种

(1)指定绑定属性名

<template>
    <custom-component v-model:isshow='showVal'>
    </custom-component>
</template>

import {ref} from 'vue
import type {Ref} from 'vue'

const showVal:Ref<boolean> = ref(true)

(2)不指定绑定属性名:默认为属性名为modelValue,相当于

<template>
    <custom-component v-model='showVal'>
    <!-- 相当于<custom-component v-model='showVal'>  -->
    </custom-component>
</template>

import {ref} from 'vue
import type {Ref} from 'vue'

const showVal:Ref<boolean> = ref(true)

步骤Ⅱ

在子组件中接受属性值并在更改后emit

(1)指定绑定属性名

<template>
  <div @click="fnemit">
    {{isshow}}
  </div>
</template>
<script setup lang='ts'>

const props = defineProps({
  isshow: {
    type: Boolean
  }
})

const emit = defineEmits(['update:isshow'])

function fnemit(){
  // 随便写个值吧,这个会被设置为modelValue绑定值的新值
  emit('update:isshow', false)

}
</script>
<style scoped>
</style>

(2)不指定绑定属性名

<template>
  <div @click="fnemit">
    {{modelValue}}
  </div>
</template>
<script setup lang='ts'>

const props = defineProps({
  modelValue: {
    type: Boolean
  }
})

const emit = defineEmits(['update:modelValue'])

function fnemit(){
  // 随便写个值吧,这个会被设置为modelValue绑定值的新值
  emit('update:modelValue', false)

}
</script>
<style scoped>
</style>

总结:

默认与定义属性名的操作方式基本:

1、定义props接受父组件传递的属性,默认的属性名为modelValue,设定的属性名为v-model:后的那个命名。

2、定义属性emit发送名称,格式为"update: " + 属性名,默认为"update:modelValue",非默认为"update:属性名"。

3、发送emit事件,并传递负载,注意负载会被当做新值赋予属性名绑定的响应值,在上面的例子中,会把负载传递给showVal,然后子组件中会同步的发生响应式变化。

v-model如果用于嵌套组件之间,则其本身是一个语法糖,父组件向子组件传递值,子组件通过emit发送更新事件,更新事件把负载值转变为父组件中绑定响应值的新值。

Tips:

需要注意的是,update:属性名 是一个固定的格式,因为v-model自动包含了@update:属性名="绑定值=负载"

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-26 10:04:39  更:2021-09-26 10:07:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 10:49:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码