vue.js 创建组件 子父通信 父子通信 非父子通信
2021-06-28 18:03
标签:color doctype second utf-8 属性 绑定 特定 event 控制 1.创建组件 2.创建组件简写 3.创建复合组件 4.创建动态组件 5.创建复合组件 6.创建父传子通信组件 7.创建子传父通信组件 8 非父子组件通信 vue.js 创建组件 子父通信 父子通信 非父子通信 标签:color doctype second utf-8 属性 绑定 特定 event 控制 原文地址:http://www.cnblogs.com/iwebkit/p/7142472.htmlDOCTYPE html>
html lang="en">
head>
meta charset="UTF-8">
title>创建组件title>
script src="https://unpkg.com/vue/dist/vue.js">script>
head>
body>
div id="demo">
my-component>my-component>
div>
script>
var myComponent=Vue.extend({
template:"
DOCTYPE html>
html lang="en">
head>
meta charset="UTF-8">
title>创建组件简写title>
script src="https://unpkg.com/vue/dist/vue.js">script>
head>
body>
div id="demo">
my-component>my-component>
div>
script>
Vue.component("my-component",{
template:"
DOCTYPE html>
html lang="en">
head>
meta charset="UTF-8">
title>创建复合组件title>
script src="https://unpkg.com/vue/dist/vue.js">script>
head>
body>
div id="demo">
parent-component>parent-component>
div>
script>
//创建一个子组件
var Child=Vue.component("child-component",{
template:"
DOCTYPE html>
html lang="en">
head>
meta charset="UTF-8">
title>创建动态组件title>
script src="https://unpkg.com/vue/dist/vue.js">script>
head>
body>
div id="demo">
keep-alive include="First,Second,Third">
component v-bind:is="options">component>
keep-alive>
button id="btn" v-on:click="toggle()">切换组件button>
div>
script>
var vm=new Vue({
el:‘#demo‘,
data:{
options:"First"//options绑定到is特性
},
components:{//建立三个组件分别是First,Second,Third
First:{
template:"
DOCTYPE html>
html lang="en">
head>
meta charset="UTF-8">
title>创建复合组件title>
script src="https://unpkg.com/vue/dist/vue.js">script>
head>
body>
div id="demo">
parent-component>parent-component>
div>
script>
//创建一个子组件
var Child=Vue.component("child-component",{
template:"
DOCTYPE html>
html lang="en">
head>
meta charset="UTF-8">
title>创建父传子通信组件title>
script src="https://unpkg.com/vue/dist/vue.js">script>
head>
body>
div id="demo">
parent-component v-bind:parent_props = "vmData">parent-component>
div>
script>
// 创建一个子组件
var Child = Vue.component("child-component",{
template:"
DOCTYPE html>
html lang="en">
head>
meta charset="UTF-8">
title>创建子传父复合组件title>
script src="https://unpkg.com/vue/dist/vue.js">script>
head>
body>
div id="div">
parent-component>parent-component>
div>
script>
/*
* 需求:点击一个按钮,然后在按钮下面的显示点击次数,
* 思路:按钮为子组件,显示次数为父组件,在子组件的methods中加入clickEvent方法,在方法中书写emit来进行子组件和父组件的关联,通常子传父都是通过事件来触发。
* 步骤:1.创建一个子组件,子组件中有一个按钮,在按钮添加一个点击事件调用方法clickEvent,在方法内写this.$emit("clickEvent"),在html中子组件的属性childPropKey=""childPropValue。
* 2.创建一个父组件,父组件有一个插值{{num}},在父组件的methods中加入方法parentMethods.
* 3.创建mv实例
*
* */
var Child=Vue.component("child-component",{
template:"",
methods:{
clickEvent:function(){
this.$emit("clickEvent");//这里是实现子传父的关键。
}
}
})
Vue.component("parent-component",{
template:"
DOCTYPE html>
html lang="en">
head>
meta charset="UTF-8">
title>创建同级组件通信的复合组件title>
script src="https://unpkg.com/vue/dist/vue.js">script>
head>
body>
div id="demo">
a-component>a-component>
b-component>b-component>
div>
script>
// 创建一个空的Vue实例作为中央事件总线。
var bus = new Vue();
//创建组件a
Vue.component("a-component",{
template:"",
methods:{
addNum:function(){//触发a组件的事件
bus.$emit("addNum");
}
}
})
// 创建组件b
Vue.component("b-component",{
template:"
上一篇:浅谈计数排序
下一篇:webpack 学习