`
好好学习-天天向上
  • 浏览: 35921 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Vue.js学习及总结——组件系统

 
阅读更多

先来看一个简单的实例:

html

 

<div id="component">
    <my-component></my-component>
</div>

 

js

创建模板
var MyComponent = Vue.extend({
    template: '<div>A good idea!</div>'
});
//注册一下  就是申明 绑定一下
Vue.component('my-component',MyComponent);
//创建实例  就是绑定到父级 div#component
new Vue({
  el: '#component'
});
接着看 内部注册一个模板: 内部模板只能使用在父级的模板内(即:template 的字符串中) 下面代码  ****** 标注

html

<div id="ex000">
    <my-component msg="hello"></my-component>
</div>

 js

//局部注册
var show = Vue.extend({
    template: '<div>sssssssssssssssssssssssssssssssssss</div>'
});

//全局注册
//定义
var showss = Vue.extend({
    //模板 
    template: '<div>{{ msg }} {{ privateMsg }} <show-s></show-s></div>', // ******
    //参数  
    //props: {
    //    msg: ''
    //},
    props: ['msg'],
    //数据
    data: function () {
        return {
            privateMsg: '2222222222222'
        }
    },
    //内部的模板 使用components 进行扩展及调用
    components: {
        //连接内部模板  调用局部模板:show
        'show-s': show
    }

});

//注册
Vue.component('my-component', showss);

//创建实例
var ex000 = new Vue({
    el: '#ex000'
});

 效果:

再来看看 父级与子级间的通讯

 

html

 

<div id="demo-2">
    <input v-model="parentMsg">
    <br>
    <child v-bind:my-message="parentMsg"></child>
</div>
 

 js

var child = Vue.extend({
    props: ['myMessage'],
    template: '<span>{{myMessage}}</span>'
});
new Vue({
    el: '#demo-2',
    data: {
        parentMsg: 'Message from parent'
    },
    components: {
       //不带引号('child')则是注册的是子级 可以在页面直接使用  带引号则是内部注册 只能在内部的template中使用
        child: child
    }
});

//components还可以这么写
components: {
   child: {
        props: {               // or  props: ['myMessage']
          'myMessage': ''    
        }
        template: '<span>{{ myMessage }}</span>'
    }
}


效果:
 

 

 自定义 :

html

<!-- 子组件模板 -->
<template id="child-template">
  <input v-model="msg">
  <button v-on:click="notify">Dispatch Event</button>
</template>

<!-- 父组件模板 -->
<div id="events-example">
  <p>Messages: {{ messages | json }}</p>
  <child></child>
// <child v-on:child-msg="handleIt"></child>
</div>

 js

// 注册子组件
// 将当前消息派发出去
Vue.component('child', {
    template: '#child-template',
    data: function () {
        return { msg: 'hello' }
    },
    methods: {
        notify: function () {
            if (this.msg.trim()) {
                this.$dispatch('child-msg', this.msg);  // 触发child-msg事件
                this.msg = '';
            }
        }
    }
});

// 启动父组件
// 将收到消息时将事件推入一个数组
var parent = new Vue({
    el: '#events-example',
    data: {
        messages: []
    },
    // 在创建实例时 `events` 选项简单地调用 `$on`
    events: {
        'child-msg': function (msg) {  // 监听到 child-msg事件
            // 事件回调内的 `this` 自动绑定到注册它的实例上
            this.messages.push(msg);  // messages改变自动修改html内容
        }
    }
});

 效果:


 

 

  • 大小: 2.5 KB
  • 大小: 8.3 KB
  • 大小: 18.3 KB
分享到:
评论
1 楼 heng123 2017-12-05  
Vue.js视频教程大全www.it448.com

相关推荐

    vue.js和vue.min.js

    Vue.js和Vue.min.js是两种版本的同一款前端JavaScript框架——Vue.js的实现。Vue.js由尤雨溪(Evan You)开发,旨在为构建用户界面提供简洁、易用且可扩展的工具。这两个文件在功能上是相同的,但它们在实际应用中...

    Vue.js前端开发实战-源代码.zip

    Vue.js 是一款轻量级的前端JavaScript框架,由尤雨溪开发并维护,以其易学易用、高性能、灵活的组件系统以及强大的生态系统而受到广大开发者喜爱。本资源"Vue.js前端开发实战-源代码.zip"是针对Vue.js的学习资料,...

    Vue.js和node.js安装包(windows下64位)

    Vue.js是一款轻量级的JavaScript库,以其易学易用、灵活性高和组件化特性受到开发者喜爱。Node.js则基于Chrome V8引擎,允许开发者使用JavaScript进行服务器端编程,实现了全栈JavaScript开发的可能性。 Vue.js的两...

    网页模板——Vue.js圆形CSS3颜色渐变色拾取器.zip

    在这个“网页模板——Vue.js圆形CSS3颜色渐变色拾取器”项目中,我们可以深入探讨Vue.js如何与CSS3技术结合,创建一个动态的颜色选择工具。 首先,Vue.js的核心在于其响应式数据绑定系统。通过使用`v-model`指令,...

    vue.js入门(3)——详解组件通信

    在Vue.js框架中,组件之间的通信是一个非常关键的部分。组件通信机制允许我们在不同的组件之间传递数据和事件,从而使得组件能够相互协作和交互。本文将详细介绍Vue.js中实现组件间通信的几种方法,并对相关的知识点...

    idea vue.js插件

    Vue.js 是一款流行的前端JavaScript框架,它以简洁的API、高效的数据绑定和组件化开发而闻名。在IntelliJ IDEA(简称Idea)这个强大的Java IDE中,Vue.js的开发支持可以通过安装Vue.js插件来实现。然而,在线安装Vue...

    网页模板——基于vue.js框架制作图片上传组件特效源码.zip

    【标题】中的“网页模板——基于vue.js框架制作图片上传组件特效源码”是指一个使用Vue.js前端框架开发的图片上传组件的代码实现。Vue.js是目前非常流行的JavaScript框架,它以其轻量级、易学易用和强大的功能著称。...

    网页模板——vue.js实现的单排卡片滚动切换特效代码.zip

    Vue.js是一种流行的前端JavaScript框架,由尤雨溪开发,它以数据驱动和组件化的核心理念,简化了网页应用的开发。在这个"网页模板——vue.js实现的单排卡片滚动切换特效代码"中,我们主要会探讨如何利用Vue.js来创建...

    网页模板——基于vue.js实现树状菜单组件代码.zip

    本资源“网页模板——基于vue.js实现树状菜单组件代码”则聚焦于如何利用Vue.js来创建一个可交互的树状菜单组件。这个组件在网页应用中十分常见,例如在文件管理系统、组织结构展示或层级数据的展示等方面都有广泛...

    网页模板——vue.js实现的冒泡数字阶梯顺序排列可视化动画特效源码.zip

    此外,通过学习和分析这个项目,你可以深入理解Vue的响应式系统、组件通信以及如何与CSS和JavaScript结合来创建复杂的交互式Web应用。这是一个很好的实践项目,可以帮助你提升Vue.js开发技能,并对冒泡排序这一经典...

    vue.js 简单的组件和点击事件应用

    Vue.js 是一款轻量级的前端JavaScript框架,以其易学易用、高性能和灵活的组件化特性而受到广大开发者的青睐。在这个“vue.js 简单的组件和点击事件应用”的主题中,我们将深入探讨Vue.js的核心概念——组件以及如何...

    网页模板——vue.js图标列表分页实例特效源码.zip

    Vue.js是一种流行的JavaScript框架,用于构建用户界面,尤其在单页面应用程序(SPA)开发中广泛应用。这个"网页模板——vue.js图标列表分页实例特效源码.zip"压缩包包含了一个基于Vue.js的网页模板,该模板展示了一...

    vueslider一个轻量的vue滑动组件

    Vue.js 是一款流行的前端JavaScript框架,它以组件化、易用性和高性能著称。在给定的标题"vueslider一个轻量的vue滑动组件"中,我们讨论的是一个基于Vue.js的滑动组件——vue-slider。这个组件设计的目标是提供一个...

    网页模板——基于vue.js自适应蛇形曲线数据效果源码.zip

    Vue.js是一种轻量级的前端JavaScript框架,以其易学易用、组件化开发和高性能的特点在Web开发领域受到广泛欢迎。这款"网页模板——基于vue.js自适应蛇形曲线数据效果源码"提供了实现动态、自适应的蛇形曲线数据展示...

    剖析 Vue.js 内部运行机制.pdf

    ### 剖析 Vue.js 内部运行机制 #### 全局概览 Vue.js 是一个流行的前端框架,用于构建用户界面。它以其简洁的 API 和高性能而闻名。...理解这些核心概念对于深入学习 Vue.js 以及优化应用程序性能至关重要。

    网页模板——vue.js项目评估流程结构图形特效代码.zip

    Vue.js是一种流行的前端JavaScript框架,用于构建用户界面。在网页模板开发中,Vue.js因其轻量级、组件化和易学性而广受欢迎。"网页模板——vue.js项目评估流程结构图形特效代码.zip"这个压缩包文件很可能包含了使用...

    基于python+django+vue.js开发的药店信息管理系统.zip

    下面,我们将详细探讨其技术栈中的核心组件——Python、Django框架以及Vue.js,以及它们如何协同工作以实现系统的功能。 首先,Python作为后台开发语言,以其简洁、易读的语法和丰富的第三方库深受开发者喜爱。在...

    vue-2.3、 Vue.js

    另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。 Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 Vue.js 自身不是一个全能框架——它只聚焦于视...

    30+个视频+vue.js教程

    ### Vue.js组件系统 Vue.js 鼓励采用组件化的开发模式。组件可以复用,使得代码更加模块化和可维护。一个Vue应用由许多相互嵌套的组件构成,每个组件负责页面上的一个局部或者片段。 ### Vue CLI Vue CLI 是一个...

    Vue.js组件开发示例:创建TodoList应用

    内容概要:本文提供了基于Vue.js和Bootstrap技术栈的详细组件开发示例——一个简单易懂的待办事项(Todo List)应用教程。该教程涵盖创建可操作的任务项列表、组件化构造与管理前端逻辑的核心流程,并介绍了相关的...

Global site tag (gtag.js) - Google Analytics