100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > vue2封装input 组件(输入的双向绑定)

vue2封装input 组件(输入的双向绑定)

时间:2023-08-02 22:59:31

相关推荐

vue2封装input 组件(输入的双向绑定)

重点

首先我们要明白 vue中v-modle 的对于input 做了什么

<input type="text" v-model="username"><input type="text" :value="username" @input="username = $event.target.value">

以上的两行代码,所呈现的效果是一样的。也就是说: v-model=“username” 在input中做了两件事情。

:value 绑定了值@input=“username = $event.target.value” 监听了值的改变

代码示例:

父组件

<template><div id="app"><lj-input placeholder="请输入" v-model="username"></lj-input><div>{{username}}</div></div></template><script>import ljInput from './components/inputCom/LjInput.vue'export default {name: 'App',components: {ljInput},data(){return{username:'',}},methods: {}}</script>

子组件

<template><div class="lj-input"><input :class="{'is-disabled':disabled}" :placeholder="placeholder" :type="type" :disabled ='disabled':value="value"@input="handleInput"></div></template><script>export default {name:'ljInput',props: {placeholder:{type:String,default:'' },type:{type:String,default:''},disabled:{type:Boolean,default:false},value:{type:String,default:''}},methods:{handleInput(e){// 这句代码是关键this.$emit('input',e.target.value) }}}</script><style>.is-disabled{cursor: not-allowed;}</style>

下面就是自己封装input 框实现的效果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。