组件的基本写法可以如下:

HTML:

 <div id="components-demo">
<button-counter self-data="this is my template"></button-counter>
</div>

JS:

// 定义一个名为 button-counter 的新组件
var ComponentA = {
//父组件传递过来的数据
props:['selfData'],
template: '<button>{{selfData}}</button>'
}; new Vue({
el: '#components-demo',
components: {
'button-counter': ComponentA
}
});

更灵活的写法如下:

HTML:

<!--props:父dom把数据传递给子DOM组件的属性-->
<!--$emit:子组件通过这个关键字方法可以调用父DOM的方法-->
<!--slot-scope:子组件属性传递到父DOM,使用此关键字进行接收后可以展示其中的属性值-->
<!--原则:组件和父DMO是单向的,即,父属性的修改会影响到子属性,但是子属性的修改不可以影响父属性和双向绑定的定义还有一点差异-->
<div id="testList">
<ul scope="tt">
<!--user这样的自定义数据属性除了使用v-bind以外,还可以简写为:user="item"-->
<test-list-template v-on:getname="ShowName" v-for="item in users" v-bind:user="item" >
<!--作用域插槽必须添加template,v2.5版本推荐使用slot-scope,之前的版本使用scope-->
<!--这里的userinfo就是slot这个插件所传递过来的对象,这个对象可以调用插槽中自定义的属性的值,例如userinfo.username和userinfo.userid-->
<template slot="test-list-name" slot-scope="userinfo">
<label>ID:{{userinfo.userid}},姓名:{{userinfo.username}},年龄:</label>
</template>
</test-list-template>
</ul>
</div>

JS:

<script type="text/template" id="test1">
<!--这样的写法是模板复用的写法,不需要带template这样的标签套在外面,否则会报错-->
<li v-on:click="SendMsg(user)" >
<slot name="test-list-name" :userid="user.id" :username="user.name"></slot>{{user.age}}
</li>
</script> <script> Vue.component('test-list-template', {
//user,父组件传递来的数据
props: ['user'],
//子组件模板,这个模板又通过子组件定义的方法调用了父组件的方法
template: '#test1',
methods: {
SendMsg: function (user) {
//第一个是父组件的方法名,第二个是传递的参数,父组件对应的是v-on:getname,这个getname是父组件的方法名
this.$emit('getname', user);
}
}
}); new Vue({
el: '#testList',
data: {
users: [
{ id: 1, name: '张三', age: 20 },
{ id: 2, name: '李四', age: 22 },
{ id: 3, name: '王五', age: 27 },
{ id: 4, name: '张龙', age: 27 },
{ id: 5, name: '赵虎', age: 27 }
]
},
methods: {
ShowName: function (data) {
//data,来自于父组件
alert('this is a ' + data.name);
}
}
});
</script>

VUE的组件DEMO的更多相关文章

  1. Vue异步组件Demo

    Vue异步组件Demo 在大型应用中,我们可能需要将应用拆分为多个小模块,按需从服务器下载.为了进一步简化,Vue.js 允许将组件定义为一个工厂函数,异步地解析组件的定义.Vue.js 只在组件需要 ...

  2. Vue UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例

    Vue UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例 element ★11612 - 饿了么出品的Vue2的web UI工具套件 Vux ★7503 - 基于Vue和WeUI的组件库 ...

  3. Vue自己写组件——Demo详细步骤

    公司近期发力,同时开了四五个大项目,并且都是用Vue来做的,我很荣幸的被分到了写项目公用模块的组,所以需要将公用的部分提取成组件的形式,供几个项目共同使用,下面详细讲一下写Vue组件的具体步骤. 一. ...

  4. 如何理解vue.js组件的作用域是独立的

    vue.js组件的作用域是独立,可以从以下三个方面理解: 1.父组件模板在父组件作用域内编译,父组件模板的数据用父组件内data数据:2.子组件模板在子组件作用域内编译,子组件模板的数据用子组件内da ...

  5. 如何抽象一个 Vue 公共组件

    之前一直想写一篇关于抽象 Vue 组件的随笔,无奈一直没想到好的例子.恰巧最近为公司项目做了一个数字键盘的组件,于是就以这个为例聊聊如何抽象 Vue 的组件. 先上 Demo 与 源码.(demo最好 ...

  6. Vue评论组件案例

    最近学习了Vue前端框架,在这里记录一下组件的用法,我自己试着写了一个评论的组件,大神看到勿喷,欢迎提出宝贵意见. 首先看一下效果图 用到的文件有: <link rel="styles ...

  7. vue全局组件-父子组件传值

    全局组件注册方式:Vue.component(组件名,{方法}) demo: 子组件:upload.vue <template> <div > <div class=&q ...

  8. 16款优秀的Vue UI组件库推荐

    16款优秀的Vue UI组件库推荐 Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可.在公司的Web前端项目开发中,多个项目采用基 ...

  9. Vue.js 组件编码规范

    本规范提供了一种统一的编码规范来编写 Vue.js 代码.这使得代码具有如下的特性: 其它开发者或是团队成员更容易阅读和理解. IDEs 更容易理解代码,从而提供高亮.格式化等辅助功能 更容易使用现有 ...

随机推荐

  1. node js linux / OS 安装

    rm -rf 删除文件夹名字rm -rf 软连接名称 1.安装taryum install -y tar 3. 下载node https://nodejs.org/en/download/ 4. 拷贝 ...

  2. daterangepicker-双日历

    js脚本和css样式,到bootstrap官网去下载 <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml&qu ...

  3. thinkPHP5.0联表查询和统计文章的图片(栏目文章)数量

    public function index(){ //获取内容列表信息 $res = db('article')->alias('a') ->join('category b', 'b.i ...

  4. Java程序员进阶架构师推荐阅读书籍

    [IT168 技术]作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些 ...

  5. tcp中 fast_open 学习 nginx 13年的版本开始支持该功能

    https://www.cnblogs.com/lanjianhappy/p/9868622.html 三次握手的过程中,当用户首次访问server时,发送syn包,server根据用户IP生成coo ...

  6. 移动端的click点透问题

    在移动端开发中,有时会出现click点透的问题. 一.什么是click点透 以下情况,在B元素上有半透明红色遮盖层A,黄色B元素内有可点击链接C. tips:以下举例仅针对webkit内核浏览器,所有 ...

  7. PlayMaker Play Sound 和 Audio Play

    这两个 Action 都可以播放声音 *Play Sound:只要把声音拖进去就可以: *Audio Play:要求游戏对象要有Audio Source组件.

  8. rails 里js 在production 只合并不压缩等问题,以及assets pipeline 加载js 在指定页面上

    因为刚学rails,试着做了一个小系统操作微信公共帐号, 之后部署的时候遇见了一个问题,整套系统在互联网端访问,非常的慢,而在手机端访问,10s后才会有响应, 打开chrome的调试工具,发现appl ...

  9. pat1033. To Fill or Not to Fill (25)

    1033. To Fill or Not to Fill (25) 时间限制 10 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 ZHANG, Gu ...

  10. 自定义Qt组件-通讯模块(P2)

    1.  抽象协议AbstractProtocol 抽象协议AbstractProtocol定义CommManager与协议之间的接口.AbstractProtocol中的一些属性(如enabled)用 ...