美文网首页
provide/inject用法

provide/inject用法

作者: 零界梦忆 | 来源:发表于2020-01-19 15:17 被阅读0次

<html>
  <head>
    <title>V</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  </head>
  <body>
    <div id="root">
        <Test></Test>
    </div>
    <script>
      function LoadingPlugin() {
        Vue.component('Test',{
          template: "<div>{{message}}<Test2 /></div>",
          provide() {
            return {
                elTest: this
            };
          },
          data() {
            return {
              message: "message from Test"
            };
          },
          methods: {
            change(component1) {
              this.message = "message from " + component1;
            }
          }
        });
        Vue.component("Test2", {
          template: "<Test3 />"
        });
        Vue.component("Test3", {
          template: '<button @click="changeMessage">change</button>',
          inject: ['elTest'],
          methods: {
            changeMessage() {
                this.elTest.change(this.$options._componentTag);
            }
          }
        });
      }
      Vue.use(LoadingPlugin);
      let vm = new Vue({
        el: "#root"
      });
    </script>
  </body>
</html>

相关文章

网友评论

      本文标题:provide/inject用法

      本文链接:https://www.haomeiwen.com/subject/vqvrzctx.html