Revisar y consolidar el principio de uso e implementación de v-model en vue

El uso y el principio de implementación de v-model


prefacio

Este artículo es principalmente para revisar el principio de v-model, incluido el principio de realización de vue2 y vue3.


1. ¿Qué puede hacer v-model?

1. El modelo v se puede utilizar en <input><select><textarea>componentes personalizados.
2. Cree enlaces bidireccionales en controles o componentes de formulario.

dos, uso

1. El comando de enlace bidireccional puede actualizar sincrónicamente el valor de entrada del control en la página al atributo de datos del enlace relevante, y también actualizará el atributo de enlace de datos.
2. Utilizado en componentes personalizados. Ver ejemplo
de versión vue2:

//示例1:
<div id="app">
	<p>{
    
    {
    
    name}}</p>
	<input type="text" v-model="name" />
</div>
data(){
    
    
	return {
    
    
		name: ""
	}
}

//示例2:自定义组件使用v-model
//father component
<com-input v-model="inputValue"></com-input>
<div>{
    
    {
    
    inputValue}}</div>
data () {
    
    
	return {
    
    
		inputValue: ""
	}
}
//child component
<div>
	<input type="text" @input="$emit('myInput', $event.target.value)">
</div>
export default {
    
    
//可以通过model对象自定已prop的名称喝事件
  model: {
    
    
    prop: 'inputValue',//默认value
    event: 'myInput',//默认input
  },
  props: {
    
    
    myValue: String,
  }
}

versión vue3:

//示例1:
<div id="app">
	<p>{
    
    {
    
    name}}</p>
	<input type="text" v-model="name" />
</div>
data(){
    
    
	return {
    
    
		name: ""
	}
}
//示例2:
//father component
<com-input v-model:propValue="inputValue"></com-input>
<div>{
    
    {
    
    inputValue}}</div>
const inputValue = ref('')
//child component
<script>
export default {
    
    
  props: ['propValue'],
  emits: ['update:propValue']
}
</script>
<template>
  <input
    type="text"
    :value="propValue"
    @input="$emit('update:propValue', $event.target.value)"
  />
</template>

3. Principio de implementación

Si comprende el uso de los componentes personalizados anteriores, básicamente ha entendido el principio de v-model.

v-model Si v-model está "desmontado y escrito", será de la siguiente manera
<input type="text" :value="testValue" @input="testValue = $event.target.value">

Explicación:
1. Defina el atributo de datos, vincule la entrada al atributo de datos, escuche el evento de entrada y asigne un valor.
2. Use datos enlazados para realizar v-model

//示例:
<div>{
    
    {
    
     testValue}}</div>
<input
  type="text"
  v-bind:value="testValue"
  @input="testValue = $event.target.value"
/>
data() {
    
    
  return {
    
    
    testValue: "",
  };
}
//示例:
//当组件使用的时候
<com-input
  :propValue="inputValue "
  @update:propValue="newValue => inputValue = newValue"
/>

Resumir

Esta revisión ha aprendido muchas cosas olvidadas. Si tiene alguna pregunta, corríjame y aprendamos unos de otros.

Supongo que te gusta

Origin blog.csdn.net/qq_43205326/article/details/125364721
Recomendado
Clasificación