牛骨文教育服务平台(让学习变的简单)
博文笔记

20、vue.js 之vue模板间的传值

创建时间:2017-05-25 投稿人: 浏览次数:141

1、引入的模板间传值
    实际上就跟父组件跟子组件的传值处理方式一样。

App.vue代码
<template>
  <div id="app">
    <!-- 路由显示的地方 -->
    <vheader :title="title"></vheader>
    <router-view></router-view>
  </div>
</template>

<script>
  import header from "./components/header.vue" // 引入模板
  export default {
    // vue代码都在这里写
    name: "app",
    data () {
      return {title: "hello chongqing!"}
    },
    components: {
      vheader: header
    }
  }
</script>

<style>
  #app {
    font-family: "Avenir", Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-align: center;
    color: #2c3e50;
    margin-top: 60px;
  }
</style>
说明:
header.vue代码
<template>
  <div>
    <h1>公共头部文件</h1>
    <h3>{{title}}</h3>
  </div>
</template>

<script>
  export default {
    props: ["title"]
  }
</script>
说明:

2、路由视图传值
    实际上也是跟父组件传值给子组件一样,只是哪个模板被加载,这个值就传给了那个模板

App.vue代码:
<template>
  <div id="app">
    <!-- 路由显示的地方 -->
    <vheader :title="title"></vheader>
    <!-- 在路由视图标签里面传值,则是传给了被加载的模板 -->
    <router-view :title="title"></router-view>
  </div>
</template>

<script>
  import header from "./components/header.vue" // 引入模板
  export default {
    // vue代码都在这里写
    name: "app",
    data () {
      return {title: "hello chongqing!"}
    },
    components: {
      vheader: header
    }
  }
</script>

<style>
  #app {
    font-family: "Avenir", Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-align: center;
    color: #2c3e50;
    margin-top: 60px;
  }
</style>
说明:
a.vue代码:
<template>
  <div>
    这里是a模板:{{title}}
  </div>
</template>
<script>
  export default {
    props: ["title"]
  }
</script>
说明:

index.js代码:
import Vue from "vue"
import Router from "vue-router"
import Hello from "@/components/Hello"
import a from "@/components/a"

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: "/",
      name: "Hello",
      component: Hello
    },
    {
      path: "/a",
      name: "a",
      component: a
    }
  ]
})

说明:


其他说明-
网址的拼接:
1、直接按照平时的vue环境拼接,实际就是es6语法的字符串的拼接

2、直接按照js环境那样拼接:
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。