element-plus自动导入图标,使用动态组件问题

element-plus自动导入图标

img


声明组件

img


#使用组件

img


效果(正常显示)

img


添加动态组件

img


效果(图标丢失)

img


浏览器查看元素

img


由上面猜测,使用component动态组件,Vue 3 并没有将其作为一个组件来处理,因为浏览器中渲染的标签不算svg。

代码拷贝出来

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/763088
  • 你也可以参考下这篇文章:一个基于Vue和ElementUi的文件管理器插件,提供类似某云盘操作台的功能。
  • 除此之外, 这篇博客: 【vue分页功能】vue element 分页组件简简单单实现分页功能详细教学中的 一、直接上代码 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    // 列表结构
    // 重点:data="pageList"
    <el-table
      :data="pageList"
      :cell-style="fileNameStyle"
      tooltip-effect="dark"
      style="width: 100%"
    >
    </el-table>
    
    // 分页结构
    // handleSizeChange: 每页的条数切换方法
    // current_change: 当前是第几页方法
    // *重点:currentChangePage 分页方法(js代码里)
    <el-pagination
        @size-change="handleSizeChange"
    	@current-change="current_change"
    	:current-page="currentPage1"
    	:page-size="pageSize"
    	layout="prev, pager, next"
    	:total="total">
    </el-pagination>
    
    data() {
        return {
          tableListData: [], // 列表数据
          pageList: [], // 分页列表数据
          pageSize: 1, // 每页多少条
          currentPage1: 1, // 当前页
          total: 0, // 总数据条数
        }
    },
    
    methods: {
        // 根据项目id查询全部列表数据
        async getListAll () {
          const { data: res } = await this.$http.post('/model/listModelFile', {
            id: this.parentId
          })
          if (res.code !== 0) {
            return this.$message.error('获取列表数据失败!')
          }
          // console.log(res)
          this.tableListData = res.data.list
          this.currentChangePage(this.tableListData, 1)
    
          // this.pageSize = res.data.pageSize
          this.currentPage = res.data.currPage
          this.total = res.data.totalCount
    
        },
            
        // 每页条数切换
        handleSizeChange (pageSize) {
          this.pageSize = pageSize
          this.current_change(this.currentPage1)
        },
        // 当前是第几页
        current_change (currentPage) {
          console.log('当前页改变时', currentPage)
          this.currentPage1 = currentPage
          this.currentChangePage(this.tableListData, currentPage)
        },
        // 分页方法(重点)
        currentChangePage (list, currentPage) {
          console.log('list', list)
          let from = (currentPage - 1) * this.pageSize
          let to = currentPage * this.pageSize
          this.pageList = []
          for (; from < to; from++) {
            if (list[from]) {
              this.pageList.push(list[from])
            }
          }
        },
    }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^