Vue2学习笔记:组件(Component)
组件
组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素, Vue.js 的编译器为它添加特殊功能。在有些情况下,组件也可以是原生 HTML 元素的形式,以 js 特性扩展。
1. 全局 Vue.component(tagName, options)
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8">
    <script src="http://unpkg.com/vue/dist/vue.js"></script>
    <!-- // <script src="vue.js"></script> -->
</head>
<body>
    <div id="box">
        <test></test>
    </div>
    <script type="text/javascript">
        //注册
        Vue.component('test', {
            template: '<div @click="change">{{msg}}</div>',
            data:function(){
                return {msg:'我的组件'}
            },
            methods:{
                change:function(){
                    //todo
                    console.log(this);
                }
            }
        });
        //创建根实例
        var vm = new Vue({
            el:'#box',
        });
    </script>
</body>
</html>
2. 局部注册
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8">
    <script src="vue.js"></script>
</head>
<body>
    <div id="box">
        <test></test>
    </div>
    <script type="text/javascript">
        ///定义组件
        var testTemplate = {
            template: '<div @click="change">{{msg}}</div>',
            data:function(){
                return {msg:'我的局部组件'}
            },
            methods:{
                change:function(){
                     //todo
                    console.log(this);
                }
            }
        };
        //创建根实例
        var vm = new Vue({
            el:'#box',
            components:{
                'test': testTemplate
            }
        });
    </script>
</body>
</html>
3. 动态切换组件
首先这样用法, 这样指定组件,下面有两个 我们指定其中的一个
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8">
    <script src="vue.js"></script>
</head>
<body>
    <div id="box">
        <components :is="testTemplate"></components>
    </div>
    <script type="text/javascript">
        ///定义组件
        var testTemplate = {
            template: '<div @click="change">{{msg}}</div>',
            data:function(){
                return {msg:'我的局部组件1'}
            },
            methods:{
                change:function(){
                     //todo
                    console.log(this);
                }
            }
        };
        //创建根实例
        var vm = new Vue({
            el:'#box'
        });
    </script>
</body>
</html>
下面有两个 我们指定其中的一个
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8">
    <script src="vue.js"></script>
</head>
<body>
    <div id="box">
        <input type="button" value="1" @click="a='testTemplate'">
        <input type="button" value="2" @click="a='testTemplate2'">
        <components :is="a"></components>
    </div>
    <script type="text/javascript">
        ///定义组件
        var testTemplate = {
            template: '<div @click="change">{{msg}}</div>',
            data:function(){
                return {msg:'我的局部组件1'}
            },
            methods:{
                change:function(){
                     //todo
                    console.log(this);
                }
            }
        };
        var testTemplate2 = {
            template: '<div @click="change">{{msg}}</div>',
            data:function(){
                return {msg:'我的局部组件2'}
            },
            methods:{
                change:function(){
                     //todo
                    console.log(this);
                }
            }
        };
        //创建根实例
        var vm = new Vue({
            el:'#box',
            data:{
                a: testTemplate   //一开始让a的第一个组件
            },
            components:{        //要把组件写入到components里面,如果没有放的话在切换的时候就会找不到 组件
                'testTemplate':testTemplate,
                'testTemplate2':testTemplate2
            }
        });
    </script>
</body>
</html>
Vue2学习笔记:组件(Component)的更多相关文章
- Angular6 学习笔记——组件详解之组件通讯
		angular6.x系列的学习笔记记录,仍在不断完善中,学习地址: https://www.angular.cn/guide/template-syntax http://www.ngfans.net ... 
- React学习笔记 - 组件&Props
		React Learn Note 4 React学习笔记(四) 标签(空格分隔): React JavaScript 三.组件&Props 组件可以将UI切分成一些独立的.可复用的部件,这样你 ... 
- Vue2 学习笔记3
		文中例子代码请参考github 定义Vue组件 什么是组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组 ... 
- Angular6 学习笔记——组件详解之模板语法
		angular6.x系列的学习笔记记录,仍在不断完善中,学习地址: https://www.angular.cn/guide/template-syntax http://www.ngfans.net ... 
- vue学习之组件(component)(一)
		组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有些情况下, ... 
- angular2 学习笔记 ( Dynamic Component 动态组件)
		更新 2018-02-07 详细讲一下 TemplateRef 和 ViewContainerRef 的插入 refer : https://segmentfault.com/a/1190000008 ... 
- Vue2 学习笔记1
		什么是Vue.js Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App,Vue语法也是可以用于进行手机App开发的,需要借助于Wee ... 
- 老刘 Yii2 源码学习笔记之 Component 类
		类图关系 属性与方法 class Component extends BaseObject { private $_events = []; private $_eventWildcards = [] ... 
- Vue 学习笔记 — 组件初始化
		简书 在vue中有3个概念很容易搞混,data,computed,props,特别是我们这些原后端开发人员. new Vue({ el: "#x", data: { id: 1 } ... 
随机推荐
- java面试③Web部分
			2.2.1 讲一下http get和post请求的区别 get和post请求都是http的请求方式,用户通过不同的http请求方式完成对资源(url)的不同操作,具体点来讲get一般用于获取/查询资源 ... 
- Sharepoint Timer job问题汇总
			解决方案发布最好发布到GAC中,使用WebApplication很多时候会有问题.TimerJob并非是在IIS下运行,所以发布到wss目录下的dll不能使用. 如果解决方案中只有一个Timer Jo ... 
- Java 并行编程!
			多核处理器现在已广泛应用于服务器.台式机和便携机硬件.它们还扩展到到更小的设备,如智能电话和平板电脑.由于进程的线程可以在多个内核上并行执行,因此多核处理器为并发编程打开了一扇扇新的大门.为实现应用程 ... 
- BATJ面试必会之Java IO 篇
			一.概览 二.磁盘操作 三.字节操作 实现文件复制 装饰者模式 四.字符操作 编码与解码 String 的编码方式 Reader 与 Writer 实现逐行输出文本文件的内容 五.对象操作 序列化 S ... 
- 分布式改造剧集三:Ehcache分布式改造
			第三集:分布式Ehcache缓存改造 前言  好久没有写博客了,大有半途而废的趋势.忙不是借口,这个好习惯还是要继续坚持.前面我承诺的第一期的DIY分布式,是时候上终篇了---DIY分布式缓存. 探 ... 
- Sqlserver 备份
			Transact-SQL 语法规则 Transact-SQL 引用中的语法关系图使用下列规则. 大写 : Transact-SQL 关键字. 斜体 : Transact-S ... 
- template-web.js 真分页绑定表格
			<div class="layui-table-box"> <div class="layui-tabl ... 
- 键盘输入,输出int数组的函数
			public class function { public static void main(String[] args) { //输入数组数据(例如10个) int [] array = inPu ... 
- SpringMVC中数据转换
			SpringMVC中接收到的数据都是String形式,然后再根据反射机制将String转换成对应的类型.如果此时想接收一个Date类型,那么我们可以定义一个转换器来完成. 例如,我们有下面的Emp类: ... 
- maven-shade-plugin 打包出错
			一般maven-shade-plugin 打包出错的原因都是因为jar包出错,一般使用mvn package -X 即可找出对应错误的jar包删除即可.我自己遇到的是打开自己打包完的jar包出错,整的 ... 
