Vue 学习(组件相关)

实现组件三个步骤

  1. 组件构造器,Vue.extend(). 这个相当于模板,模板是干什么的呢?理解为 你看到的都是这货渲染出来的,它里面有data,template之类的
  2. 注册组件,Vue.component("name",module)。这货相当于打标签,上一步创建的,他给命名,第二个参数如果是对象的话,可以省去第一步
  3. 挂载组件

注册全局组件 Vue.component("my-component",{

//选项

})

局部组件 var Child={

template: "<div>我是子组件</div>"

}

###

可以将子组件注册到父组件中

var Parent=Vue.extend({

template:"<div>我是你爸爸<my-child></my-child></div>",

components: {

‘my-child‘: Child

}

});

注意顺序!!子组件一定要声明在父组件之前

上面这个错误是因为没有加,

```

var Test=Vue.extend({

template:"<div>123</div>"

})

var app=new Vue({

el:"#app2",

data:function(){

return count;

}

components:{

"Count":Test

}

})

```

这样会JJ 。上面代码中还有问题 data只能是函数,指的是在组件中,这个属于实例了,不能那么写。

<div id="app2">
                <Count></Count>
                <Count></Count>
                <Count></Count>
        </div>
        <template id=‘count‘>
                <div>
                        <button v-on:click="count+=1">{{count}}</button>
                </div>
        </template>

var Test=Vue.extend({
                template:"#count",        
                data:function(){
                                return {count:0};
                        }
        })
        var app=new Vue({
                el:"#app2",
                components:{
                        "Count":Test
                }
        })

父子组件之间通信

屏幕剪辑的捕获时间: 2017/1/11 20:46

这样写是错误的,components其实就相当于Vue.component({ })的简写

<div id="app3">

<props-test
v-bind:name="data1" v-bind:age="data2"></props-test>
</div>

        var app3=new Vue({
                el:"#app3",
                data:{
                        data1:"JD",
                        data2:"21"
                },
                components:{
                        "props-test":{
                                template:"#propsTest",
                                props:["name","age"]
                        }
                }
        })

思考下整个过程中数据流怎么走?

首先在html模板中绑定实例中的数据 --> 在模板中声明要传入的props(一个数组),这个props将出现在

<my-component ></my-component>中 -->接着在具体模板中就会出现props。实例相当于在app3之上,父组件就是app3

<child-component v-bind:子组件prop="父组件数据属性"></child-component>

<template></template>一定要写在 #app 外,愚蠢的错误!

子组件影响父组件

通过v-on来触发
相当于自定义一个方法,当这个方法触发时,影响父组件。

```

<div id="app5">
                <h1>父组件通过在子组件上的v-on监听变化</h1>
                {{totalnum}}
                <app5-v-on v-on:incrent="total"></app5-v-on>
                <app5-v-on v-on:incrent="total"></app5-v-on>
        </div>
        <template id="app5tpl">
                <div>
                        <button v-on:click="incrent">{{count}}</button>
                </div>
        </template>

Vue.component("app5-v-on",{

template:"#app5tpl",

data:function(){

return {

count:0

}

},

methods:{

incrent:function(){

this.count=+1;

this.$emit("incrent")

}

}

})

var app5=new Vue({

el:"#app5",

data:{

totalnum:0

},

methods:{

total:function(){

this.totalnum+=1

}

}

})

```

时间: 2025-01-05 03:47:38

Vue 学习(组件相关)的相关文章

Vue学习笔记入门篇——组件的使用

本文为转载,原文:Vue学习笔记入门篇--组件的使用 组件定义 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展. 组件使用 注册 注册一个全局组件,你可以使用 Vue.component(tagName, options).组件在注册之后,便可以在父实例的模块中以自定义元素 的形式使用.

Vue学习笔记入门篇——组件的内容分发(slot)

本文为转载,原文:Vue学习笔记入门篇--组件的内容分发(slot) 介绍 为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板.这个过程被称为 内容分发 (或 "transclusion" 如果你熟悉 Angular).Vue.js 实现了一个内容分发 API,使用特殊的 'slot' 元素作为原始内容的插槽. 编译作用域 在深入内容分发 API 之前,我们先明确内容在哪个作用域里编译.假定模板为: <child-component> {{ messa

Vue学习笔记入门篇——组件的通讯

本文为转载,原文:Vue学习笔记入门篇--组件的通讯 组件意味着协同工作,通常父子组件会是这样的关系:组件 A 在它的模版中使用了组件 B.它们之间必然需要相互通信:父组件要给子组件传递数据,子组件需要将它内部发生的事情告知给父组件.然而,在一个良好定义的接口中尽可能将父子组件解耦是很重要的.这保证了每个组件可以在相对隔离的环境中书写和理解,也大幅提高了组件的可维护性和可重用性.在 Vue 中,父子组件的关系可以总结为 props down, events up.父组件通过 props 向下传递

Vue学习笔记进阶篇——多元素及多组件过渡

本文为转载,原文:Vue学习笔记进阶篇--多元素及多组件过渡 多元素的过渡 对于原生标签可以使用 v-if/v-else.但是有一点需要注意: 当有相同标签名的元素切换时,需要通过 key 特性设置唯一的值来标记以让 Vue 区分它们,否则 Vue 为了效率只会替换相同标签内部的内容.即使在技术上没有必要,给在 <transition> 组件中的多个元素设置 key 是一个更好的实践. 示例: <transition> <button v-if="isEditing

## vue学习笔记--简单父子组件--

## vue学习笔记 ### 组件之间的通讯1. 父组件到子组件```js //father <div> <son msg="父组件的信息写在这"></son> <son title="title"></son> <!--:title--> </div> <script> export default { data(){ return { title: '当传递一个变量过

vue学习--自定义全局vue组件

文档目录: |--components |-loading(组件文件夹) |-loading.vue (loading组件核心) |-index.js //配置导出组件,并且install 主要配置到处文件index.js 代码 import LoadingComponent from './loading.vue'  //引用组件文件 //定义并注册组件 const Loading = {    install: function(Vue) {        Vue.component('Lo

vue学习笔记(1)—— 组件化实现todoList

一.环境搭建 1.npm 大型应用时推荐用npm安装,npm能很好的和webpack等模块打包器配合使用.具体安装步骤请参考网上的诸多教程.完成后使用如下命令安装vue. $ npm install vue 安装完成后,命令行运行命令 vue ,看到如下效果表示vue安装成功: 2.vue-cli vue-cli是vue提供的一个官方命令行工具.可用于快速搭建大型的单页应用. # 全局安装 vue-cli $ npm install --global vue-cli 二.项目搭建 安装完成之后我

Vue学习之组件小结(七)

一.组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用相应的组件即可. 二.组件和模块: 1.模块化:是从代码逻辑的角度进行划分的:方便代码分层开发,保证每个功能模块的只能单一: 2.组块化:是从UI界面的角度进行划分的:前端的组块化,方便UI组件的重用. 三.定义全局组件的方式: 三种方式: <!DOCTYPE html> <html lang="en"> <head

vue 学习一 组件生命周期

先上一张vue组件生命周期的流程图 以上就是一个组件完整的生命周期,而在组件处于每个阶段时又会提供一些周期钩子函数以便我们进行一些逻辑操作,而总体来讲 vue的组件共有8个生命周期钩子 beforeCreate 实例创建前 create 实例创建后 beforeMount dom挂载前 mounted dom挂载后 beforeUpdate 数据更新前 updated 数据更新后 beforeDestroy 组件实例销毁前 destroyed 组件实例销毁后 每一个生命周期,vue做的事情不同,

Vue学习系列(二)——组件详解

前言 在上一篇初识Vue核心中,我们已经熟悉了vue的两大核心,理解了Vue的构建方式,通过基本的指令控制DOM,实现提高应用开发效率和可维护性.而这一篇呢,将对Vue视图组件的核心概念进行详细说明. 什么是组件呢? 组件可以扩展HTML元素,封装可重用的HTML代码,我们可以将组件看作自定义的HTML元素. 为什么要用到组件呢? 为了可重用性高,减少重复性开发,让我们可以使用独立可复用的小组件来构建大型应用. 基本 一.组件注册 1.通过Vue.extend()创建,然后由component来