2018-09-25

非父组件
<div class="box">
<first></first>
<second></second>
</div>

<script src="js/vue.js"></script>
<script>
    var sent = new Vue()//中间量

    Vue.component("first",{
        template:`
            <div>
                <h1>这是first组件</h1>
                <button @click='add'>传送数据</button>
            </div>
        `,
        data:function(){
            return{
                msg:'hello vue'
            }
        },
        methods:{
            add:function(){
                sent.$emit("sentMsg",this.msg) 
            }
        }
    })
    
    Vue.component("second",{
        template:`
            <div>
                <h1>这是second组件</h1>
                <p>{{mess}}</p>
            </div>
        `,
        data:function(){
            return{
                mess:''
            }
        },
         mounted:function(){//因为mounted是vue的生命周期,所以用箭头函数用this指向组件
            sent.$on("sentMsg",msg=>{
                this.mess = msg
            })
        }

    })
    
    new Vue({
        el:'.box'
    })
</script>

组件嵌套
<div id="app">
<router-link to='/home'>首页</router-link>
<router-link to='/user'>用户页</router-link>
<router-view></router-view>
</div>
<script src="js/vue.js"></script>
<script src="js/vue-router.js"></script>
<script>
var Home={
template:<h1>这是首页</h1>
}
var User={
template:<div> <h1>这是用户页</h1> <ul> <li> <router-link to='/user/regist'>注册</router-link> </li> <li> <router-link to='/user/login'>登录</router-link> </li> </ul> <router-view></router-view> </div>
}
var Regist={
template:<h3>这是注册页</h3>
}
var Login={
template:<h3>这是登录页</h3>
}
//3配置路由
const routes=[
{path:'/',component:Home},
{path:'/home',component:Home},
{
path:'/user',component:User,
children:[
{path:'regist',component:Regist},
{path:'login',component:Login}
]
}

]
  //4.创建一个路有实咧
   const router=new VueRouter({
       routes:routes
   })
   
   //5.
   new Vue({
       el:'#app',
       router:router
   })

    </script>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • HTML部分 Hello App! <!-- 通过传入 `to` 属性指定链接. --> <!-- <rout...
    另一个童话阅读 2,490评论 0 0
  • 1.vue-router相当于vue的第三方数据库。 用处1.通过不同的url访问不同的页面,实现spa(sing...
    没人要的野狗罢了阅读 1,534评论 0 0
  • axios <router-link to='/home'>这是首页</router-link><router-l...
    轩呓阅读 825评论 0 0
  • 朋友圈真是个好东西,让你在自家的地盘也能被刷屏。 比如罗一笑小朋友的故事,很多朋友表示今天被她霸屏了。 有一句真理...
    深海淡蓝阅读 3,808评论 0 1
  • 15 杨大夫心里就好像突突突长满了草似的,也摸不准脉象了,也瞧不出来人家这是什么病了。 14 看着这唯一的儿子天...
    宇小天阅读 2,905评论 2 1