Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html lang="en" >
<head>
  <meta charset="UTF-8">
  <title>CodePen - A Pen by Ch2x</title>
  <link rel="stylesheet" href="./style.css">
  <script src="https://unpkg.com/vue@3.2.7/dist/vue.global.js"></script>
<!--  <script src='https://cdn.jsdelivr.net/npm/vue@2.7.8/dist/vue.js'></script>-->
<!--  <script src='https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js'></script>-->
  <style>
    .test {
      width: 200px;
      height: 200px;
      position: fixed;
      top: 0;
      right: 0;
      background-color: aqua;
    }
  </style>
</head>
<body>
<div id="mount-point"></div>
<div id="app">
  <button @click="handleClick">test</button>
  <span>{{visible}}</span>
  <child-component v-if="visible"/>
</div>
<script>
  const TestConstructor = ({
    template: '<div class="test" v-show="visible">TestConstructor visible = {{visible}}</div>',
    data() {
      return {
        visible: true,
      };
    },
    methods: {
      close() {
        debugger
        this.visible = false;
      }
    },
    watch: {
      visible: (newValue, oldValue) => {
        debugger
      }
    }
  });
  const innerVue = Vue.createApp(TestConstructor).mount('#mount-point')
  // let instance;
  // const Notify = function () {
  //   instance = new TestConstructor();
  //   instance.$mount();
  //   document.body.appendChild(instance.$el);
  //   instance.visible = true;
  //   return instance;
  // };
  const app = Vue.createApp({
    data() {
      return {
        visible: true
      }
    },
    methods: {
      handleClick() {
        this.visible = !this.visible
      }
    }
  })
  app.component('child-component', {
    template: '<div><div>child component {{test}}</div></div>',
    data() {
      return {
        test: null
      }
    },
    mounted() {
      // this.test = Notify();
    },
    beforeUnmount () {
      // this.test.close();
      debugger
      innerVue.close()
    },
    methods: {
    }
  })
  app.mount('#app')
</script>
</body>
</html>
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
JuniorTourpro
0viewers