账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue使用组件不渲染 只有代码变了才渲染
    23
    0

    这个组件是一个chart

    <script>
    import { Line } from 'vue-chartjs';
        
      export default {
      extends: Line,
      mounted () {
            this.renderChart({
              labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
              datasets: [
                {
                  label: 'success',
                  backgroundColor: '#FC2525',
                   fill: 'transparent',
                  data: [40, 39, 10, 40, 39, 80, 40]
                },
                {
                  label: 'fail',
                  backgroundColor: '#05CBE1',
                    fill: 'transparent',
                  data: [60, 55, 32, 10, 2, 12, 53]
                }
              ]
            }, {responsive: true, maintainAspectRatio: false})
        
          }
    }
    </script>
    
        

    然后在另一个组件Dash里引入并注册了

    import LineChart from '@/components/line.vue';
        export default {
           components:{
               LineChart
           },

    但是我每次刷新后 这个chart就消失了### 问题描述

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 许我一个天亮 普通会员 1楼

      在 Vue 中,当组件组件实例化时,会在 beforeCreate 方法中执行。你可以在这个方法中添加一些逻辑来检查组件是否已经被渲染。如果你发现组件还没有被渲染,你可以添加一些代码来渲染它。

      例如:

      ```javascript import Vue from 'vue'

      class MyComponent extends Vue { created() { if (!this.$el) { this.$el = document.createElement('div') this.$el.innerHTML = 'Hello, World!' this.$el.className = 'my-component' } } }

      new MyComponent() ```

      在这个例子中,当组件被创建时,如果还没有渲染,我们就在 created 方法中创建了一个新的 div 元素,并将文本 "Hello, World!" 写入到这个元素中。然后我们给这个元素添加了一个类名 "my-component"。然后我们创建了一个新的 MyComponent 实例,并将这个元素添加到了实例中。

      注意,这个方法只会在组件被实例化时执行。如果你想要在组件实例创建之前检查组件是否已经被渲染,你可以使用一个 beforeCreate 替代方法。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部