作者 | Jeskson

来源 | 达达前端小酒馆

v-model双向绑定

创建双向数据绑定,v-model指令用来在input,select,checkbox,radio等表单控件。v-model指令在内部使用不同的属性为不同的输入元素抛出不同的事件。

v-mdel指令实现数据的双向绑定:

  1. <div>
  2. 用户名:<input type="text" v-model="name">
  3. </div>
  4. 输入用户名是:{{name}}
  5. <div id="app">
  6. <div>
  7. 用户名:
  8. <input type="text" v-bind:value="name"
  9. @input="name = $event.target.value">
  10. </div>
  11. 用户名:{{name}}

组件中的表单控件:

  1. <input type="text" value="value"
  2. @input = "handleinput($event.target.value)">

自定义组件,父组件的input事件需要通过$emit参数:

  1. <input type="text" value="value"
  2. @input = "handleinput($event.target.value)">
  3. handleinput: function(){
  4. // 向父组件触发input事件
  5. this.$emit('input, value');
  6. }
  1. <div>
  2. 自定义组件双向绑定
  3. <my-component v-model="dashucoding">
  4. </my-component>

v-model指令进行双向数据绑定:


  1. <div id="app">
  2. <div>
  3. <h1>v-model工作原理</h1>
  4. <input type="text" v-bind:value="name" v-on:input="name = $event.target.value">
  5. <div>name={{name}}</div>
  6. </div>
  7. <div>
  8. 父组件
  9. <my-component v-model="name"></my-component>
  10. </div>
  11. </div>
  12. <template id="my-component">
  13. <div>
  14. 组件中
  15. <div>
  16. <input type="text" v-bind:value="value"
  17. v-on:input="handleInput($event.target.value)">
  18. </div>
  19. </div>
  20. </template>

  1. <script>
  2. //创建组件
  3. const MyComponent = {
  4. template: '#my-component",
  5. props: ['value'],
  6. methods: {
  7. handleInput: function(val){
  8. this.$emit('input',val);
  9. }
  10. }
  11. };
  12. // 创建vue实例对象
  13. const app = new Vue({
  14. el: '#app',
  15. data: {
  16. name: ''
  17. },
  18. components: {
  19. MyComponent
  20. }
  21. });
  22. </script>

动态组件,动态地切换组件的显示内容,多个组件可以使用同一个挂载点。

  1. <div id="app">
  2. <div>
  3. <button @click="currentComponent = 'C1Component'">
  4. c1
  5. </button>
  6. <button @click="currentComponent = 'C2Component'">
  7. c2
  8. </button>
  9. // 使用动态组件
  10. <keey-alive>
  11. <component v-bind:is="currentComponent">
  12. </component>
  13. </keey-alive>
  14. </div>
  15. </div>
  1. <template id="c1">
  2. <div>
  3. this is c1
  4. <div>
  5. name:<input type="text">
  6. </div>
  7. </div>
  8. </template>
  1. <template id="c2">
  2. <div>
  3. this is c2
  4. </div>
  5. </template>

  1. <script>
  2. // 定义组件
  3. const C1Component = {
  4. template: '#c1'
  5. };
  6. const C2Component = {
  7. template: '#c2'
  8. };
  9. // vue实例对象
  10. const app = new Vue({
  11. el: '#app',
  12. data: {
  13. currentComponent: 'C1Component'
  14. },
  15. components: {
  16. C1Component,
  17. C2Component,
  18. }
  19. });
  20. </script>

递归组件,需要有一个结束的判断,否则就会一直循环。

  1. <template id="menu-component">
  2. <ul>
  3. <li v-for="item in menus">
  4. {{item.name}}
  5. <menu-component v-if="item.children" :menus="item.children">
  6. </menu-component>
  7. </li>
  8. </ul>
  9. </template>

创建组件:

  1. const MenuComponent = {
  2. name: 'MenuComponent',
  3. template: '#menu-component',
  4. props: ['menus']
  5. }
  6. <div id="app">
  7. <menu-component :menus="menus">
  8. <menu-component>
  9. </div>
  1. <template id="menu-component">
  2. <ul>
  3. <li v-for="item in menus">
  4. {{item.name}}
  5. <menu-component v-if="item.children" :menus="item.children">
  6. </menu-component>
  7. </li>
  8. </ul>
  9. </template>

❤️ 不要忘记留下你学习的脚印 [点赞 + 收藏 + 评论]

作者Info:

【作者】:Jeskson

【原创公众号】:达达前端小酒馆。

【福利】:公众号回复 “资料” 送自学资料大礼包(进群分享,想要啥就说哈,看我有没有)!

【转载说明】:转载请说明出处,谢谢合作!~

大前端开发,定位前端开发技术栈博客,PHP后台知识点,web全栈技术领域,数据结构与算法、网络原理等通俗易懂的呈现给小伙伴。谢谢支持,承蒙厚爱!!!


若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理。


请点赞!因为你们的赞同/鼓励是我写作的最大动力!

欢迎关注达达的CSDN!

这是一个有质量,有态度的博客

Vue组件的操作-自定义组件,动态组件,递归组件的更多相关文章

  1. svelte组件:svelte3自定义桌面PC端对话框组件svelte-layer

    基于Svelte3.x开发pc网页版自定义弹窗组件svelteLayer. svelte-layer:基于svelte.js轻量级多功能pc桌面端对话框组件.支持多种弹窗类型.30+参数随意组合配置, ...

  2. elementUI的动态tabs页的使用,vue的动态组件的操作

    elementUI的动态tabs页的使用,vue的动态组件的操作 有时候我们需要用到动态的tab页,结合不同的页面内容来显示.这里是使用了elementUI的动态tabs页来实现的 <div c ...

  3. Vue加载组件、动态加载组件的几种方式

    https://cn.vuejs.org/v2/guide/components.html https://cn.vuejs.org/v2/guide/components-dynamic-async ...

  4. vue中动态加载组件+开发者模式+JS参数值传递和引用传递

    今天写vue里面通过接口反参动态加载组件时候 跟着同学...学习到了 一.先说说vue 内置组件 component 的用法 component组件可以来专门用来进行组件的切换,使用is来绑定你的组件 ...

  5. 用Vue.js递归组件构建一个可折叠的树形菜单

    在Vue.js中一个递归组件调用的是其本身,如: Vue.component('recursive-component', {   template: `<!--Invoking myself! ...

  6. 谈谈Vue的递归组件

    2月最后一天,而且还四年一遇,然而本月居然一篇博客没写,有点说不过去.所以,今天就来谈谈Vue的递归组件.我们先来看一个例子: See the Pen 递归组件 by imgss (@imgss) o ...

  7. 前端笔记之Vue(三)生命周期&CSS预处理&全局组件&自定义指令

    一.Vue的生命周期 生命周期就是指一个对象的生老病死的过程. 用Vue框架,熟悉它的生命周期可以让开发更好的进行. 所有的生命周期钩子自动绑定 this 上下文到实例中,因此你可以访问数据,对属性和 ...

  8. 使用VUE组件创建SpreadJS自定义单元格(二)

    在上篇中,我们介绍了如何通过设置runtimeCompiler为true,在Vue中实现了动态创建电子表格组件.想了解具体内容可看点击查看使用VUE组件创建SpreadJS自定义单元格(一). 但是在 ...

  9. vue初级学习--组件的使用(自定义组件)

    一.导语 突然冒出四个字,分即是合,嗯,优点道理....................... 二.正文 在搞的仿淘宝demo,之前加入购物车是与商品详情一块的,今天把它单独拆出来,复用性高点,那这样 ...

随机推荐

  1. APP兼容性测试(三)测试方案设计

    1.  背景 App的兼容性问题可能会导致流失潜在的客户,为了尽量减少因兼容性问题导致的同类问题,进一步提高产品的质量,提升用户体验,所以进行兼容性测试,尽可能多的保证更多的用户都可以正常使用app. ...

  2. ThinkPHP框架获取上一条插入语句产生的id

    今天在fastAdmin框架想搞一个拖动进行排序的功能 遇到一个问题是权重的字段值一样的话拖动会出bug,所以想让权重字段(weigh)的值等于当前id的值, 搜索看到的方法如下 实际应用的地方,是写 ...

  3. Entity Framework 6 中如何获取 EntityTypeConfiguration 的 Edm 信息?(五)

    直接贴代码了: NewsInfo 实体类: public class NewsInfo { public int NewsInfoId { get; set; } public string News ...

  4. laravel npm run dev 错误 npm run dev error [npm ERR! code ELIFECYCLE]

    出现此问题是node_modules出现错误,需要执行: 1 rm -rf node_modules 2 rm package-lock.json 3 npm cache clear --force ...

  5. Python基础22

    数据类型可变不可变,说的是“指向”. 深浅拷贝.

  6. 【Idea】idea中编译后无法提示错误信息的解决方案

  7. Axel多线程工具安装

    Axel 是 Linux 下一个不错的轻量级高速下载工具,支持HTTP/FTP/HTTPS/FTPS协议,支持多线程下载.断点续传,且可以从多个地址或者从一个地址的多个连接来下载同一个文件. 大家使用 ...

  8. Python语言基础04-构造程序逻辑

    本文收录在Python从入门到精通系列文章系列 学完前面的几个章节后,博主觉得有必要在这里带大家做一些练习来巩固之前所学的知识,虽然迄今为止我们学习的内容只是Python的冰山一角,但是这些内容已经足 ...

  9. MongoDB 之pymongodb

    import pymongo import json from bson import ObjectId mongoclient = pymongo.MongoClient(host="12 ...

  10. JS高阶---闭包缺点(内存溢出与泄露)

    [大纲] [主体] (1)闭包优缺点 .延长局部变量的生命周期2.外部访问函数内部变量 闭包的优点同时也是它的缺点,就是 (2)解决方案 .能不用闭包就不用(很难做到,因为应用较多) .及时释放--- ...