自定义组件之v-model的使用

v-model的语法糖可以为下面v-bind && @input联合完成:

<input v-model="text">
<!-- 以上相当于如下写法 -->
<input :value="text" @input="text=$event.target.value">

父子组件通信的时候,可在父组件的孩子组件上面使用v-model,默认触发子组件指定的event和prop接受参数

父组件:

<template>
<div id="father">
<p>{{ text }}</p>
<child v-model="text"></child>
</div>
</template> <script>
import child from "./child.vue";
export default {
name: "father",
components: { child },
data: function () {
return {
text: "我是父组件",
};
}
}
</script> <style lang="less" scoped></style>

子组件:

<template>
<div id="child">
<p>{{ msg }}</p>
<button @click="btnClick">点击改变父组件内容</button>
</div>
</template> <script>
export default {
name: 'child',
model: {
prop: "msg",
event: "respond",
},
props: {
msg: {
type: String,
},
},
methods: {
btnClick() {
this.$emit("respond", "我是子组件");
},
},
};
</script> <style lang="less" scoped></style>

注意:在组件上使用v-mode时,其被使用组件上应该有个model对象配置,用于接受v-model传递过来的信息,它有两个属性,prop是要指定传过来的属性接收参数,event是v-model时要指定绑定的事件名(由当前被使用组件定义)。

以上example中父组件上的 v-model 会把 msg用作 prop 且把 respond用作 event。这样就可以实现父子组件之间的通信,子组件可以拿到父组件传过来的值,子组件也可以更改值。

Vue自定义组件之v-model的使用的更多相关文章

  1. vue自定义组件(vue.use(),install)+全局组件+局部组件

    相信大家都用过element-ui.mintui.iview等诸如此类的组件库,具体用法请参考:https://www.cnblogs.com/wangtong111/p/11522520.html ...

  2. Vue自定义组件实现v-model指令

    Tips: 本文所描述的Vue均默认是Vue2版本 在我们初次接触Vue的时候,一定会了解到一个语法糖,那就是v-model指令,它带给我们的第一印象就是它可以实现双向绑定 那么,什么是双向绑定?通俗 ...

  3. vue自定义组件中的v-model简单解释

    在使用iview框架的时候,经常会看到组件用v-model双向绑定数据,与传统步骤父组件通过props传值子组件,子组件发送$emit来修改值相比,这种方式避免操作子组件的同时再操作父组件,显得子组件 ...

  4. Vue - 自定义组件双向绑定

    前言 无论在任何的语言或框架中,我们都提倡代码的复用性.对于Vue来说也是如此,相同的代码逻辑会被封装成组件,除了复用之外,更重要的是统一管理提高开发效率.我真就接手过一个项目,多个页面都会用到的列表 ...

  5. [转] vue自定义组件(通过Vue.use()来使用)即install的使用

    在vue项目中,我们可以自定义组件,像element-ui一样使用Vue.use()方法来使用,具体实现方法: 1.首先新建一个Cmponent.vue文件 // Cmponent.vue<te ...

  6. vue 自定义组件销毁

    今天在开发电商vue前端项目时,用户每次登出再换其它用户登录时,页面显示的用户名和左则导航都还是上个用户的,刚开始以为是localStorage中没有清除全局数据,然后在用户点击退出系统时手动清除lo ...

  7. Vue自定义组件插入值

    我们自定义组件的时候有时候需要往组件里面插一些内容: //定义一个组件test,插值内容用slog来代替 export default { name: 'test', template:` <d ...

  8. VUE 自定义组件之间的相互通信

    一.自定义组件 1.全局自定义组件 我们在var vm = new Vue({});的上面并列写上Vue.component('自定义组件名',{组件对象});来完成全局自定义组件的声明.示例代码如下 ...

  9. vue自定义组件并使用

    以下是使用自己写的一个简单的文件上传框为例 1.自定义组件结构(一个js文件,一个vue文件),最好单独放一个文件 2.upload.vue 内容 其中,action是父组件传递给子组件的参数,使用p ...

随机推荐

  1. 什么是静态内部(Static Inner)类,语法要注意什么?

    4静态内部类(Static Inner Classes) 马克-to-win:这里的内部类的static,意思是它可以不用实例化外部类,就自己单独被实例化,单独存在(有点像生活中的办公室和办公桌(独立 ...

  2. Blazor组件自做九: 用20行代码实现文件上传,浏览目录功能 (3)

    接上篇 Blazor组件自做九: 用20行代码实现文件上传,浏览目录功能 (2) 7. 使用配置文件指定监听地址 打开 appsettings.json 文件,加入一行 "UseUrls&q ...

  3. Java安全之Commons Collections6分析

    Java安全之Commons Collections6分析 0x00 前言 其实在分析的几条链中都大致相同,都是基于前面一些链的变形,在本文的CC6链中,就和前面的有点小小的区别.在CC6链中也和CC ...

  4. 解决一次calico异常情况,pod之间访问pod ip不通

    k8s 集群采用二进制安装,cni网络插件用calico通讯问题描述:发现有些pod不是很正常例如: ht13.node正常系统采样 [root@ht6 ~]# cat /etc/redhat-rel ...

  5. NodeJs学习日报day9——操作数据库

    const mysql = require('mysql') const db = mysql.createPool({ // 数据库的ip地址 host: 'localhost', user: 'r ...

  6. MySQL入门学习day3随笔2

    用户创建及权限部分 1 create user Cra2iTeT identified by '123456'-- 创建用户 2 3 alter user 'Cra2iTeT'@'%' identif ...

  7. JavaScript学习总结3-函数

    JS如果没能完return,等函数完全执行完毕也会返回NaN(undefined) 因为JS高度自由性,不像C.C++.Java等,函数传参有较严格的限制,JS可以完函数内传任意数量个参数,也可以不传 ...

  8. 记录,element ui的日期选择器只有第一次回显成功

    首先是这个 <el-date-picker v-model="value1" type="daterange" range-separator=" ...

  9. canvas 整个透明

          ctx.globalAlpha=.9

  10. Codeforces Round #753 (Div. 3), problem: (D) Blue-Red Permutation

    还是看大佬的题解吧 CFRound#753(Div.3)A-E(后面的今天明天之内补) - 知乎 (zhihu.com) 传送门  Problem - D - Codeforces 题意 n个数字,n ...