VueJS/Vuex/vue-router笔记- 开发/Error错误处理及优化相关记录

摘要:
WebPack的默认assetsPublicPath是站点的根路径。如果将Vue项目作为应用程序安装在IIS站点下,则会导致路径错误。Q、 Vue错误:编译失败,有1个错误:Vue+节点今天被使用,Js是前端。事实证明,有一个节导致了错误。这真是一次狗的更新。VueClient更新后,会提示它使用得更好。请尝试使用新版本的脚手架Q:Vue error:Errorinrender:“TypeError:Cannotreadproperty'matched'of defined”和:Cannotreadproperty'matched'of definedJS语法来编写不精确的问题错误代码:importVue from'Vue'importApp from'./app。vue'importssofrom'../../router/sso'newVue更正:importVue from'vue'importAppfrom'./app。vue下的vue'importssofrom'../../router/s so'newVueQ TypeScript编程消息无法调用其类型缺少调用签名的表达式。类型“VueRouter”没有兼容的调用签名。

 开发记录备查笔记.....

 Q.Vuejs(2.6.x):TS下使用Vuex例子:

  记一个ts下的vuex store,备查

  可以用以前的ES写法,但是想用强类型约束的话,就得改成TS的写法.

  (吐槽:vue虽然已经全部用TS重构了,但还是有大量的any变量,希望随着以后的迭代,能完善成更出色的泛型类吧,现在的vuex真是不太好用,还不如自己写单例)

  

VueJS/Vuex/vue-router笔记- 开发/Error错误处理及优化相关记录第1张VueJS/Vuex/vue-router笔记- 开发/Error错误处理及优化相关记录第2张
import Vue from 'vue';
import Vuex,{GetterTree,MutationTree,ActionTree, ModuleTree, MutationPayload} from 'vuex';

Vue.use(Vuex);

class Store_State {
  /**全局弹窗 */
  public GlobalDialog = {
    bGameSetting : true
  };
}

//Get方法
const getters = <GetterTree<Store_State, any>> {
  
};

//状态修改事件
const mutations = <MutationTree<Store_State>>{
    //显示
    ShowGameSettingDialog(state:Store_State, payload:MutationPayload) {
        state.GlobalDialog.bGameSetting = payload.payload;
    }
};

//
const actions = <ActionTree<Store_State, any> >{
    fetchUserId(store) {
    }
};

//模块
const modules = <ModuleTree<any>>
{

};

export default new Vuex.Store({
  state: new Store_State(),
  getters: getters,
  mutations: mutations,
  actions: actions,
  modules: modules
});
exam

 然后改写下Vuex的*.d.ts : node_modulesvuex ypesvue.d.ts

 如下:

import Vue, { ComponentOptions } from "vue";
import { Store } from "./index";
import { Store_State } from "@/store/store_core";

declare module "vue/types/options" {
  interface ComponentOptions<V extends Vue> {
    //这里把any修改成了store_State
    store?: Store<Store_State>;
  }
}

declare module "vue/types/vue" {
  interface Vue {
    //这里把any修改成了store_State
    $store: Store<Store_State>;
  }
}

Q.超大数据数组列表渲染优化:

  1.插件/z组件大法

  2.Vue使用object.freeze()实现单向渲染:

     wait

 Q.Vue,插入数据后,等待页面渲染后执行函数:

  例如我的html中的一个scroll 容器绑定了 array且需要保证scroll总是在底部的,则在我 push了数据后,需要等待页面渲染后设置容器的滚动条位置.

  就需要用到vue的this.$nextTick()

  该函数没此渲染都会生成新的promise对象,所以不必担心重复调用问题

  $nexttick() 文档介绍:https://cn.vuejs.org/v2/api/#Vue-nextTick

使用例子: 

    this.$nextTick().then((vue:any)=>
    {
      let ele:any = document.getElementById('unzipfilelist');
      ele.scrollTop = ele.scrollHeight;
    });

Q.Vue:的虚拟路径问题(vue-cli 2.x):

IIS挂在VUE 应用程序的问题:

Vue-Client脚手架。WebPack默认的assetsPublicPath是站点的根路径。如果在IIS站点下挂载Vue项目为应用程序的话会导致路径错误。

解决方法:

修改项目中的

config/index.js里的assetsPublicPath为相对根路径。

VueJS/Vuex/vue-router笔记- 开发/Error错误处理及优化相关记录第3张

 Q.Vue错误:Failed to compile with 1 errors:

今天用Vue+Node.Js 做前端。遇到一个奇葩报错:Failed to compile with 1 errors 一下子摸不着头脑。

结果 翻了半天代码。找到了原来是有一段 <div v-on:click=""></div> 导致报错,真是B了狗

 更新:Vue client 更新后提示用好了很多,请尽量用新版本脚手架

Q:Vue错误:Error in render: "TypeError: Cannot read property 'matched' of undefined"

  和 :Cannot read property 'matched' of undefined

JS语法写法不严谨问题(辣鸡语言,毁我青春薅我头发)

报错代码:

import Vue from 'vue'
import App from './app.vue'
import sso from '../../router/sso'
new Vue({
  el: '#app',
  sso,
  template: '<App/>',
  components: { App }
})

 修正:

import Vue from 'vue'
import App from './app.vue'
import sso from '../../router/sso'
new Vue({
  el: '#app',
  router: sso,
  template: '<App/>',
  components: { App }
})

Q.Vue下的TypeScript 编程报 无法调用类型缺少调用签名的表达式。类型“VueRouter”没有兼容的调用签名。(TS2349):

如vue-Router
 
declare interface Vue {
$router: (options?: any) => VueRouter
}
 

Q.Vue下的TypeScript 编程报 Syntax Error: Unexpected token:

通常是引用脚本是没注意.

需要指定lang="ts"才行 例如:

<script lang="ts" src="http://t.zoukankan.com/index.ts"></script>

免责声明:文章转载自《VueJS/Vuex/vue-router笔记- 开发/Error错误处理及优化相关记录》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ubuntu16.04安装破解pycharm如何批量删除通一个文件夹目录下的相同文件,批量删除文件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vite vue插件打包配置

import { defineConfig, UserConfigExport, ConfigEnv } from "vite"; import externalGlobals from "rollup-plugin-external-globals"; import vue from "@vitejs/plugin-vue"; import dts f...

老vue项目webpack3升级到webpack5全过程记录(一)

背景 19年新建的vue项目,使用的是webpack3,随着项目的积累,组件的增多导致本地构建,线上打包等操作速度极慢,非常影响开发效率和部署效率,基于此问题,本次对webpack及相关插件进行了优化和升级。本博文分为2篇,第 1 篇 会直接附上可运行的代码(去除了一些业务代码配置),直接粘贴复制即可使用(注意是基于vue2.0项目原配置基础上的修改哦,在...

Vue根据浏览器窗体变化动态设置Element Table组件的最大高度

Vue根据浏览器窗体变化动态设置Element Table组件的最大高度 这个场景应该经常遇到,比如说在一个页面有一个table,想让他数据过多的时候自动出现滚动条而不至于冲到屏幕外被隐藏,如果表格下面还有换页的话,换页直接冲没了,所以需要计算这个table表格的最大高度。 使用的是饿了吗Element组件库的table组件,有一个属性是 max-heig...

dp--bitset优化

Problem Description 一共有(n)个数,第(i)个数是(x_i),(x_i)可以取([l_i , r_i])中任意的一个值。 设(S = sum {x_i}^2),求(S)种类数。 Analysis of ideas C++的 bitset 在 bitset 头文件中,它是一种类似数组的结构,它的每一个元素只能是0或1,每个元素仅用1bi...

【转】Hbuilder配置Avalon、Vue指令提示

转载自CSDN http://blog.csdn.net/jianggujin/article/details/71419828 我本人是一名Java后端开发,偶尔也会研究一下前端内容,因为Hbuilder是基于eclipse开发的,所以用起来倍感亲切啊,而且在我尝试使用的几款前端开发工具中,Hbuilder的表现也是相当出色地,可以访问Huilder官网...

Vue 实战项目: 硅谷外卖(1)

第 1 章: 准备 1.1. 项目描述 1) 此项目为外卖 WebApp(SPA) 2) 包括商家, 商品, 购物车, 用户等多个子模块 3) 使用 Vue 全家桶+ES6+Webpack 等前端最新最热的技术 4) 采用模块化、组件化、工程化的模式开发 1.2. 项目功能界面 1.3. 技术选型 1.4. 前端路由 1.5. API...