mama3925 2024-05-23 01:49 采纳率: 0%
浏览 16

Vue框架和Element组件搭建Demo报错

Vue框架,Vue-cli脚手架,结合饿了么Element组件使用。
Element的button组件

出现以下报错

Uncaught runtime errors:
×
ERROR
ResizeObserver loop completed with undelivered notifications.
    at handleError (webpack-internal:///./node_modules/webpack-dev-server/client/overlay.js:299:58)
    at eval (webpack-internal:///./node_modules/webpack-dev-server/client/overlay.js:318:7)

完整的vue-cli代码如下

ElementView.vue文件

<template>
    <div>
    <!-- Button按钮 -->
        <el-row>
            <el-button>默认按钮</el-button>
            <el-button type="primary">主要按钮</el-button>
            <el-button type="success">成功按钮</el-button>
            <el-button type="info">信息按钮</el-button>
            <el-button type="warning">警告按钮</el-button>
            <el-button type="danger">危险按钮</el-button>
        </el-row>

        <!-- Table表格 -->
        <el-table
        :data="tableData"
        style="width: 100%">
            <el-table-column
                prop="date"
                label="日期"
                width="180">
            </el-table-column>
            <el-table-column
                prop="name"
                label="姓名"
                width="180">
            </el-table-column>
            <el-table-column
                prop="address"
                label="地址">
            </el-table-column>
        </el-table>

        <br>
        <!-- Pagination分页 -->
        <el-pagination
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            background
            layout="sizes,prev, pager, next,jumper,total"
            :total="1000">
        </el-pagination>

        <br><br>
        <!--Dialog 对话框 -->
        <!-- Table -->
        <el-button type="text" @click="dialogTableVisible = true">打开嵌套表格的 Dialog</el-button>

        <el-dialog title="收货地址" :visible.sync="dialogTableVisible">
        <el-table :data="gridData">
            <el-table-column property="date" label="日期" width="150"></el-table-column>
            <el-table-column property="name" label="姓名" width="200"></el-table-column>
            <el-table-column property="address" label="地址"></el-table-column>
        </el-table>
        </el-dialog>

        <br><br>
        <!-- Dialog对话框-Form表单 -->
        <el-button type="text" @click="dialogFormVisible = true">打开嵌套Form的 Dialog</el-button>

        <el-dialog title="Form表单" :visible.sync="dialogFormVisible">
            
            <el-form ref="form" :model="form" label-width="80px">
                <el-form-item label="活动名称">
                    <el-input v-model="form.name"></el-input>
                </el-form-item>
                <el-form-item label="活动区域">
                    <el-select v-model="form.region" placeholder="请选择活动区域">
                    <el-option label="区域一" value="shanghai"></el-option>
                    <el-option label="区域二" value="beijing"></el-option>
                    </el-select>
                </el-form-item>
                <el-form-item label="活动时间">
                    <el-col :span="11">
                    <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 100%;"></el-date-picker>
                    </el-col>
                    <el-col class="line" :span="2">-</el-col>
                    <el-col :span="11">
                    <el-time-picker placeholder="选择时间" v-model="form.date2" style="width: 100%;"></el-time-picker>
                    </el-col>
                </el-form-item>
            
                <el-form-item>
                    <el-button type="primary" @click="onSubmit">立即创建</el-button>
                    <el-button>取消</el-button>
                </el-form-item>
            </el-form>
        </el-dialog>
    </div>
</template>

<script>
export default {
    methods: {
      handleSizeChange(val) {
        console.log(`每页 ${val} 条`);
      },
      handleCurrentChange(val) {
        console.log(`当前页: ${val}`);
      },
      //表单案例的提交事件
      onSubmit() {
        console.log(this.form); //输出表单内容到控制台
        this.dialogFormVisible=false; //关闭表案例的对话框
      }
    },
     data() {
        return {
        //表单案例的数据双向绑定
        form: {
          name: '',
          region: '',
          date1: '',
          date2:''
        },
        gridData: [{
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-04',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-01',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }],
        dialogTableVisible: false,
        dialogFormVisible: false, //控制form表单案例的对话框
        tableData: [{
            date: '2016-05-02',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1518 弄'
          }, {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1517 弄'
          }, {
            date: '2016-05-01',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1519 弄'
          }, {
            date: '2016-05-03',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1516 弄'
          }]
        }
      }
}
</script>

<style>

</style>

App.vue文件

<template>
  <div id="app">
  <!-- {{message}} -->
  <element-view></element-view> 
  </div>

</template>

<script>
import ElementView from './views/ElementView.vue';
export default {
  components: {ElementView},
  data(){
    return {
      "message":"hello world"
    }
  }
}
</script>


  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-23 01:49
    关注

    引自免费微信小程序:皆我百晓生

    看起来你正在尝试在 Vue 项目中使用 Element UI 组件,并遇到了一个关于 ResizeObserver 的错误。这个错误通常与浏览器渲染机制有关,而不是实际的代码错误。尽管如此,我们可以尝试一些方法来解决这个问题。

    首先,确保你已经正确安装并引入了 Element UI。如果你还没有这样做,在你的项目根目录下运行以下命令来安装 Element UI:

    npm install element-ui --save
    

    然后,在 main.js 文件中引入并全局注册 Element UI:

    import Vue from 'vue';
    import ElementUI from 'element-ui';
    import 'element-ui/lib/theme-chalk/index.css';
    
    Vue.use(ElementUI);
    

    接下来,检查你的 Vue 和相关依赖是否都是最新版本。有时候,过时的库版本可能会导致不兼容性问题。你可以使用 npm outdated 命令查看是否有可用的更新,然后运行 npm update 来升级它们。

    现在,回到你的代码。上述代码看起来没有明显的语法错误。然而,为了排除潜在的问题,可以考虑重新组织一下结构,将样式和逻辑分开,例如,将样式放入单独的 CSS 文件中,这样有助于提高可维护性和性能。此外,确保所有的 Element UI 组件都已正确引入。

    为了简化问题,确保只加载了必要的 Element UI 组件。例如,对于这个例子,可能只需要 Button, Table, Pagination, Dialog, Form, DatePicker, 和 Select。可以在 main.js 中按需导入这些组件,而不是全局注册所有组件:

    // main.js
    import Vue from 'vue';
    import { ElButton, ElTable, ElTableColumn, ElPagination, ElDialog, ElForm, ElFormItem, ElInput, ElSelect, ElDatePicker } from 'element-ui';
    import 'element-ui/lib/theme-chalk/index.css';
    
    Vue.component(ElButton.name, ElButton);
    Vue.component(ElTable.name, ElTable);
    Vue.component(ElTableColumn.name, ElTableColumn);
    Vue.component(ElPagination.name, ElPagination);
    Vue.component(ElDialog.name, ElDialog);
    Vue.component(ElForm.name, ElForm);
    Vue.component(ElFormItem.name, ElFormItem);
    Vue.component(ElInput.name, ElInput);
    Vue.component(ElSelect.name, ElSelect);
    Vue.component(ElDatePicker.name, ElDatePicker);
    

    ElementView.vue 中,确认所有 Element UI 组件都有正确的标签名。例如,el-select 应该是 <el-select> 而不是 <el-option>

    最后,如果你仍然遇到 ResizeObserver 错误,尝试清除浏览器缓存,或者在其他浏览器上测试,看问题是否依然存在。这可能是由于旧的缓存数据导致的。

    按照以上步骤操作后,你应该能解决大部分问题。如果还有问题,请提供更详细的错误日志,以便进一步排查。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月23日

悬赏问题

  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 有人知道怎么在R语言里下载Git上的miceco这个包吗
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥20 关于DAC输出1.000V对分辨率和精度的要求
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题
  • ¥15 哪位能做百度地图导航触点播报?
  • ¥15 请问GPT语言模型怎么训练?
  • ¥15 已知平面坐标系(非直角坐标系)内三个点的坐标,反求两坐标轴的夹角