Vue学习笔记

非父子组件的传值问题

2019-01-02  本文已影响10人  puxiaotaoc

1、Bus/总线/发布订阅模式/观察者模式的方法;
2、Vuex方法;

<!DOCTYPE html>
<html lang="en" dir="ltr">

<head>
  <meta charset="utf-8">
  <title>非父子组件间传值(Bus/总线/发布订阅模式/观察者模式)</title>
  <script src='./vue.js'></script>
</head>

<body>
  <div id="app">
    <child content="puxiaotao"></child>
    <child content="cc"></child>
  </div>

  <script>
    Vue.prototype.bus = new Vue()
    Vue.component('child', {
      data: function() {
        return {
          selfContent: this.content
        }
      },
      props: {
        content: String
      },
      template: '<div @click="handleClick">{{selfContent}}</div>',
      methods: {
        handleClick: function() {
          this.bus.$emit('change', this.selfContent)
        }
      },
      mounted: function() {
        var this_ = this
        this.bus.$on('change', function(msg) {
          this_.selfContent = msg
        })
      }
    })
    var vm = new Vue({
      el: '#app'
    })
  </script>
</body>

</html>
上一篇下一篇

猜你喜欢

热点阅读