day 100天 VUE 父子传值,单页面.

时间:2021-07-06 04:38:41

 一 、静态资源导入方法

启动服务  npm run serve

day 100天 VUE 父子传值,单页面.

<template>
<div id ="app"> <h3>{{msg}}</h3>
<ul>
<img src="./assets/logo.png">
<audio :src="audioSrc" autoplay="" controls=""></audio>
<li v-for ="(item,index) in menus">
{{item}}
</li>
</ul> </div> </template> <script>
// import Vheader from './components/Vheader.vue'
// import Vcontent from './components/Vcontent.vue' import audio1 from './assets/1.mp3'
export default{
name:"App",
data(){
return{
msg:"hello 组件",
menus:["宫保丁","鱼香肉丝","回锅肉"],
audioSrc: audio1
}
} // components:{
// Vheader,
// Vcontent
// }
} </script> <style >
</style>

  

day 100天 VUE 父子传值,单页面.

前端页面展示的情况:

day 100天 VUE 父子传值,单页面.

day 100天 VUE 父子传值,单页面.

二、父组件往子组件传值

App.vue文件 配置

<template>
<div id ="app">
<Vheader></Vheader>
<ul>
<audio :src="audioSrc" autoplay="" controls=""></audio> <li v-for ="(item,index) in menus">
{{item}}
</li>
</ul>
<h3> 你好 vue测试h3标签</h3>
</div> </template> <script> import audio1 from './assets/1.mp3'
import Vheader from './components/Vheader.vue'
// import Vcontent from './components/Vcontent.vue' export default{
name:"App",
data(){
return{
menus:["宫保丁","鱼香肉丝","回锅肉"],
audioSrc:audio1
}
}, components:{
Vheader,
// Vcontent
}
} </script> <style scoped>
h3{
color:red ;
}
</style>

Vheader

<template>
<div class="header">
<img :src="logSrc">
<h3>{{msg}}</h3>
</div>
</template>
<script >
import logSrc from "../assets/logo.png"
export default{
name:'Vheader',
data(){
return{
msg:"hello 组件",
logSrc:logSrc, }
}
}
</script> <style scoped> h3{
color:yellow;
}
</style>

  

vue文件

day 100天 VUE 父子传值,单页面.

vheader文件

day 100天 VUE 父子传值,单页面.

输出结果 :

day 100天 VUE 父子传值,单页面.

三、父组件往子组件传值

vue文件

<template>
<div id ="app">
<Vheader></Vheader>
<Vcontent :menu ="menus"></Vcontent> <ul>
<audio :src="audioSrc" autoplay="" controls=""></audio> <li v-for ="(item,index) in menus">
{{item}}
</li>
</ul>
<h3> 你好 vue测试h3标签</h3>
</div> </template> <script> import audio1 from './assets/1.mp3'
import Vheader from './components/Vheader.vue'
import Vcontent from './components/Vcontent.vue' export default{
name:"App",
data(){
return{
audioSrc:audio1

        menus:['宫保鸡丁', '鱼香肉丝'],

          }
}, components:{
Vheader,
Vcontent
}
} </script> <style > </style>

  

vcontent文件

<template>
<div class="content">
<ul>
<li v-for ="(item,index) in menu">
{{item}}
</li>
<h3>你好 HELLO WORLD</h3>
</ul>
</div> </template> <script>
export default {
name :"Vcontent",
data(){ return {

                menus:this.menu

			}
}, props:{
// 父子传值 属性必须要验证.
menu:Array
}
} </script>

  

父子传值步骤:

1.父里面

day 100天 VUE 父子传值,单页面.

2.子里面配置

day 100天 VUE 父子传值,单页面.

3.子里面

day 100天 VUE 父子传值,单页面.

输出结果:

day 100天 VUE 父子传值,单页面.

四、子级往父级传值-自定义事件

vue文件

<template>
<div id ="app">
<Vheader @addmenu ="addHandler"></Vheader> 自定义绑定事件
<Vcontent :menu ="menus"></Vcontent> <ul>
<audio :src="audioSrc" autoplay="" controls=""></audio> <li v-for ="(item,index) in menus">
{{item}}
</li>
</ul>
<h3> 你好 vue测试h3标签</h3>
</div> </template> <script> import audio1 from './assets/1.mp3'
import Vheader from './components/Vheader.vue'
import Vcontent from './components/Vcontent.vue' export default{
name:"App",
data(){
return{
audioSrc:audio1,
menus:['宫保鸡丁', '鱼香肉丝'],
}
},
methods:{
addHandler(value){ 自定义绑定事件方法
alert(value);
this.menus.push(value) }
}, components:{
Vheader,
Vcontent
},
} </script> <style > </style>

  

<template>
<div class="header">
<img :src="logSrc">
<h3>{{msg+"header里面的内容"}}</h3>
<button @click ="addonemenu">添加</button>

</div>
</template>
<script >
import logSrc from "../assets/logo.png"
export default{
name:'Vheader',
data(){
return{
msg:"hello 组件",
logSrc:logSrc, }
},
methods:{
addonemenu(){
this.$emit("addmenu","酸菜鱼");
}
},
}
</script> <style scoped> h3{
color:yellow;
}
</style>

  day 100天 VUE 父子传值,单页面.

day 100天 VUE 父子传值,单页面.

五、父子传值的方法

day 100天 VUE 父子传值,单页面.

 六 、vue-router 创建单页面应用

安装地址:https://router.vuejs.org/zh/guide/

day 100天 VUE 父子传值,单页面.

下载vrouter

day 100天 VUE 父子传值,单页面.

day 100天 VUE 父子传值,单页面.

day 100天 VUE 父子传值,单页面.

day 100天 VUE 父子传值,单页面.

main.js文件

import Vue from 'vue'
import App from './App.vue' import VueRouter from "vue-router" import Vhome from "./components/Vhome.vue"
import Vuser from "./components/Vusers.vue" // 如果使用模块化机制编程,导入Vue和VueRouter, 要调用Vue.use(VueRouter)
Vue.use(VueRouter)
Vue.config.productionTip =false var router =new VueRouter({
routers:[
{path:'/',components:Vusers}
]
}) new Vue({
  router,
render: h => h(App)
}).$mount('#app')