最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • vue 自定义系统流程【4】模板兼容性修改 【更新中】 - 掘金

    正文概述 掘金(刺猬老爷)   2021-10-25   1022
    • 直接复制 v-e-a 中的模板,会出现很多的黄色警告。一个一个来处理吧

    模板兼容性修改 --- 【更新中】

    零、参考文档

    • 官网 升级指南 v3.cn.vuejs.org/guide/migra…

    一、具体优化

    • 到这里,页面一片空白,为了更快的测试出来,我决定先把其他路由都注释掉,只留下 dashboard 的路由
    constantRoutes 不变
    asyncRoutes 的路由只留下 * 的那一项
    

    1. views/login/index.vue

    • 这个应该是最早接触到的模板了,里面也有要改的
    • 【问题】弹出第三方登录的部分
    • 【解决】【附录 1.1】
    <el-dialog  :visible.sync="showDialog">
    
    • 改为
    <el-dialog  v-model="showDialog">
    
    • 设置完成之后,又可以愉快的弹出窗口了

    2. views/dashboard/index.vue 首页

    • 这是最让人蛋疼的地方了。弹出了一堆的错误,warn 和 error 级别都有。
    • 翻了很多的文档只能一个一个的来处理
    1. Unhandled error during execution of setup function
    • 有些人碰到的是组件名称和 模板名称一样,改了就好了
    • 发现在这里并不是,而是 render 函数的问题。
    • 最终定位在 \src\views\layout\components\Sidebar\item.vue
    • 路由流程:
    路由引入router.js -> 指向dashboard -> 引入 views\dashboard\index.vue ->  
    
    \views\dashboard\admin-> index.vue 【加载权限】 -> views\layout\index.vue 【框架组件根模板】->
    \views\layout\components\Sidebar\Item.vue 【这个是最终的子组件】
    
    • 问题点:render 函数【读了2遍文档,才发现。。。】

      • Vue3 的render 进行了修改,
      • 重点文档render函数 :v3.cn.vuejs.org/api/options…
      • props:v3.cn.vuejs.org/guide/compo…
      • h 参数: v3.cn.vuejs.org/guide/rende…
      • 迁移文档:v3.cn.vuejs.org/guide/migra…
    • 修改:

    <script>
    import { h } from 'vue';
    export default {
      name: 'MenuItem',
      functional: true,
      props: {
        icon: {
          type: String,
          default: ''
        },
        title: {
          type: String,
          default: ''
        }
      },
      render(){
       const vnodes = []
       const icon = this.icon
       const title = this.title
        if (icon) {
          if (icon.includes('el-icon')) {
            vnodes.push(<i class={[icon, 'sub-el-icon']} />)
          } else {
          vnodes.push(<svg-icon icon-class={icon}/>)
          }
        }
    
        if (title) {
          vnodes.push(<span slot='title'>{(title)}</span>)
        }
      }
    
    
       return h('MenuItem',vnodes)
    }
    
    • 小结:
      • 一个是render 函数变化,不能传参
      • 一个是 h 的变化。。
      • 到这里觉得改动真的有点大。。。都想着要不重新写一个好了。。这么改何时才是个头。。。
    1. vue-count-to 错误!
    • 前面一步解决完,马上出来更多错误。但是至少说明前面一步已经测通了。。。
    • warm 类型的先不管,先处理 红色 TypeError: Cannot read property '_c' of undefined
    • 定位到的是 vue-count-to
    • 查了一下,已经有前人了,继续修改。。
    • 参考 blog.csdn.net/qq_38330707…
    • 照着改就可以了== 错误消失
    1. TypeError: filters[this.visibility] is not a function
    • D:\node\z-test-vue\hello-world\src\views\dashboard\admin\components\TodoList\index.vue
    1. http://192.168.6.89:8080/dev-api/vue-element-admin/transaction/list 有一个404 错误
    • 根据 url 判断 接口数据 src/api 找到 接口是 remote-search
    • 原因是:mock 里面没有考入 remote-search.js
    1. error '_' is defined but never used no-unused-vars
    • \mock\role/index.js
    line 43,line 55 : response: _ => { 改为 response: () => {
    
    • \mock\role/remote-search.js
    response: _ => { 改为 response: () => {
    
    1. Unnecessary escape character:
    • D:\node\z-test-vue\hello-world\mock\role/user.js
    line 52 : 去掉 info 和 . 之间的反斜杠
    line 77 : response: _ => { 改为 response: () => {
    
    1. mock.js?96eb:8363 GET http://192.168.6.89:8080/dev-api/vue-element-admin/transaction/list 404 (Not Found)
    • 访问 虚拟数据的时候 404
    • 之前mock 里面没有开启
    • \mock/index.js
    const search = require('./remote-search')
    const mocks = [
        //这里增加
        ...search
    ]
    
    • 到这一步出现的问题更多了,但是同一类型的错误只剩下一个,估计是每个页面都会有,只要发现一个,其他的都好处理了
    1. TypeError: filters[this.visibility] is not a function
    • 全部定位在 src\views\dashboard\admin\components\TodoList\index.vue filteredTodos()
    • 页面出现了很多的wran ,
    • 为了测试,我改了一下
    - 原本的 return filters[this.visibility](this.todos)
    - 改为 return {},发现页面出来了。黄色警告依然。
    
    • 到这一步,接近胜利的感觉。下一步要考虑先解决 8 号错误,或者是先解决黄色警告了。初步判断有可能还是计数器引起的黄色警告,然后造成了 filters 有问题,下面再继续分析。先暂停休息。。。
    • 未完待续

    附录

    1. 各种升级变化

    1. 属性绑定的问题
    - [Vue warn]: Missing required prop: "modelValue"
    - [Vue warn]: Extraneous non-props attributes (visible) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.
    
    v-model:visible="xxx"改为v-model="xxx"即可
    

    起源地下载网 » vue 自定义系统流程【4】模板兼容性修改 【更新中】 - 掘金

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元