【问题标题】:Is Vue 3 backwards compatible with Vue 2?Vue 3 是否向后兼容 Vue 2?
【发布时间】:2021-07-17 09:21:07
【问题描述】:

在互联网上的不同帖子(例如this one)中,我发现 Vue 2 代码应该与 Vue 3 一起使用,但对我来说却不行。例如我有简单的组件

<template>
    <div class="overflow-x-auto bg-white rounded-lg shadow overflow-y-auto relative">
        <table class="table">
            <thead>
                <tr class="text-left">
                    <th>
                        <label>
                            <input type="checkbox">
                        </label>
                    </th>
                    <th>User ID</th>
                    <th>Firstname</th>
                    <th>Lastname</th>
                    <th>Email</th>
                    <th>Gender</th>
                    <th>Phone</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>
                        <label>
                            <input type="checkbox" name="1">
                        </label>
                    </td>
                    <td> <span>{{ id }}</span> </td>
                    <td> <span>Cort</span> </td>
                    <td> <span>Tosh</span> </td>
                    <td> <span>{{ email }}</span> </td>
                    <td> <span>Male</span> </td>
                    <td> <span>327-626-5542</span> </td>
                </tr>
            </tbody>
        </table>
    </div>
</template>
<script>
export default {
    data() {
        return {
            id: 1,
            email: 'test@mail.com'
        }
    },

    mounted() {
        alert('mounted');
    },

    created() {
        alert('created');
    }
};
</script>

表格生成得很好,但是mountedcreated 在组件制作时都没有触发。 emailid 也未显示。只显示表格。

【问题讨论】:

标签: vue.js vuejs2 vue-component vuejs3


【解决方案1】:

您的代码有效:

Vue.createApp({
  data() {
    return {
      id: 1,
      email: 'test@mail.com'
    }
  },
  created() {
    alert('created')
  },
  mounted() {
    alert('mounted')
  }
}).mount('#app')
<script src="https://unpkg.com/vue@next"></script>

  <div id="app" class="overflow-x-auto bg-white rounded-lg shadow overflow-y-auto relative">
      <table class="table">
          <thead>
              <tr class="text-left">
                  <th>
                      <label>
                          <input type="checkbox">
                      </label>
                  </th>
                  <th>User ID</th>
                  <th>Firstname</th>
                  <th>Lastname</th>
                  <th>Email</th>
                  <th>Gender</th>
                  <th>Phone</th>
              </tr>
          </thead>
          <tbody>
              <tr>
                  <td>
                      <label>
                          <input type="checkbox" name="1">
                      </label>
                  </td>
                  <td> <span>{{ id }}</span> </td>
                  <td> <span>Cort</span> </td>
                  <td> <span>Tosh</span> </td>
                  <td> <span>{{ email }}</span> </td>
                  <td> <span>Male</span> </td>
                  <td> <span>327-626-5542</span> </td>
              </tr>
          </tbody>
      </table>
  </div>

【讨论】:

  • 不,它没有。我提供的代码在独立的组件文件中
  • 应该没什么区别。组件仅对可读性/代码管理至关重要。我暂时无法理解你的情况。
猜你喜欢
  • 2019-11-14
  • 2017-12-08
  • 2012-05-19
  • 2021-05-14
  • 1970-01-01
  • 1970-01-01
  • 2020-12-30
  • 1970-01-01
  • 2021-01-15
相关资源
最近更新 更多