Maison > Article > interface Web > Un article expliquant en détail comment vue implémente v-model (avec des exemples de code)
Cet article vous apporte des connaissances pertinentes sur vue. Il vous présente principalement pourquoi nous utilisons v-model ? Comment utiliser vue pour implémenter v-model ? Si vous êtes intéressé, jetons-y un coup d'œil, j'espère que cela sera utile à tout le monde.
v-model fournit principalement deux fonctions. La valeur d'entrée de la couche de vue affecte la valeur d'attribut des données. Les modifications dans la valeur d'attribut de données mettront à jour les modifications numériques de. la couche de vue.
Le cœur est que d'une part, la couche modale détourne chaque attribut via DefineProperty, et une fois les modifications détectées, elle est mise à jour via les éléments de page pertinents. D'autre part, en compilant le fichier modèle, l'événement d'entrée est lié au modèle V du contrôle, de sorte que l'entrée de la page puisse mettre à jour les valeurs d'attribut de données pertinentes en temps réel.
<template> <div id="app"> {{username}} <br/> <my-input type="text" v-model="username"></my-input> </div> </template> <script> import myinput from './components/myinput' export default { name: 'App', components:{ myinput }, data(){ return { username:'' } } } </script>
<template> <div class="my-input"> <input type="text" class="my-input__inner" @input="handleInput"/> </div> </template> <script> export default { name: "myinput", props:{ value:{ //获取父组件的数据value type:String, default:'' } }, methods:{ handleInput(e){ this.$emit('input',e.target.value) //触发父组件的input事件 } } } </script>
<template> <div> <kmDialog v-model="showDialog" > <el-button @click="show">点我</el-button> </div> </template> <script> import kmDialog from 'KmDialog.vue' export default { components: { KmDialog } data () { return { showDialog: false } }, methods: { show() { this.showDialog = true } } } </script>
<template> <el-dialog :title="isEdit ? '编辑设备' : '新增设备'" :visible.sync="value" width="40%" @close="cancel" > <span>这是一段信息</span> </el-dialog> </template> <script> export default { props: { value: { default: false, type: Boolean } }, methods: { cancel() { this.$emit('input', false) } } } </script>
Apprentissage recommandé : "tutoriel vidéo vue.js"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!