Vue2.0使用过程常见的一些问题总结学习


Posted in Javascript onApril 10, 2017

最近在学习Vue,今天正好写个学习笔记,把以前遇到的错误给总结一下。

Vue目前的的开发模式主要有两种:

1.直接页面级的开发,script直接引入Vue

2.工程性开发,webpack+loader或者直接使用脚手架工具Vue-cli,里面的文件都配置好了

webpack可以进行配置,配置多文件入口,进行多页面开发

第二种Vue开发,结合webpack打包完文件会很大,怎么解决这个问题?

1.webpack代码拆分:code-spliting

2.提取公共(如提取css,js)

3.预渲染:使用prerender-spa-plugin插件

4.后台————开启压缩,gzip (会很有用)

5.异步加载组件:require.ensure

Vue常见错误解决方法:

1.[Vue-warn]: Missing required prop: "to"  (found in component <router-link>)

这个错误是<router-link>少了个to或者是写错 ,正确写法为:<router-link to="/home">

并且路由在做字符串拼接的时候,to要作为一个属性绑定 <router-link :to="'/home/'+item.id">

2.端口冲突错误:需要改端口

当然现在vue2.0中的webpack 已经自己会根据你的端口号进行改正,从8080往后面进行递增,不会发生端口号冲突的情况,在vue1.0中会经常出现

3.[Vue-warn]:Unknown custom element: <router-link> - did you register the component correctiy?

错误1:引进来的vue-router没有use()

import Vue from 'vue'

import VueRouter from 'vue-router'

Vue.use(VueRouter);

错误2:在生成路由实例之后,没有将路由挂到我们的Vue实例上面

const router=new VueRouter({
mode:'history',//切换路径模式,变成history模式,不然路径为/#/home

scrollBehavior:()=>({ // 滚动条滚动的行为,不加这个默认就会记忆原来滚动条的位置
 

y:0

}),

// 注意这里的名称
 
routes
 });
 new Vue({

/* 4.最后挂到vue上 */

router,

el: '#app',

render: h => h(App)
 });

4.Uncaught TypeError: _vuex2.default.store is not a constructor

这个报错的是_vuex2.default.store 不是一个构造函数,因为在我们用vuex的时候需要将用到的actions,mutations模块最终导出,在导出的时候new Vuex.Store中的Store小写了,这里的一定要大写,就相当于我们在使用构造函数(类)的时候首字母要大写

import mutations from './mutations.js'

import actions from './actions.js'


export default new Vuex.Store({ //Vue.Stroe()首字母大写
 

modules:{ //这里注意mutations导出的是一个模块
 


mutations


},



actions


});

5. Moudel not found:Error:Can't resolve "style" in 'D:\vue-demo'

在vue1.0中,在webpack.config.js中配置css文件时

module:{


loaders:[



{




test:/\.css$/,




loader:'style!css'



}


]

}

在vue2.0中,在webpack.config.js中配置css文件时,必须要写全,不能和vue1.0一样简写

module:{


rules:[ //这里改成了rules



{




test:/\.css$/,




loader:'style-loader!css-loader' //这里必须要写全,不能和vue1.0一样简写
 


}


]

}

6.组件之间的通信从1.0过渡到2.0时引发的错误:

vue1.0实现父子组件的通信 -->通过props属性-->并且子组件可以更改父组件的数据 通过sync同步

当在vue2.0里面不允许直接给父级数据做更改,并且把这个方法.sync去掉了,

当子组件再试图更改父组件的数据时,就会报错。 

解决方法:

1.$emit()——单一事件管理

经常遇到的问题是找不到$emit()或$on(),这时需要单独准备一个文件Store.js

在文件里面需要:var oEvent =new Vue();

这个这个文件里的数据一定要导出去才可以使用:export default oEvent

2.对象之间的引用:(推荐使用)

vue1.0传数据:msg:'welcome' -->传给子级

vue2.0直接将数据定义成对象json的形式,这样传给子级的数据是对象的属性,即msg.title

这样子级修改父级的数据,修改的也是这个对象的一个属性msg.title

 msg:{
  title:'welcome'

  }
 msg.title

7.用vuex用来管理组件状态:(增加/减少,显示/隐藏)

8.axios目前不可以use,因为axios里面没有install这个方法 

使用axios的时候,可以这样来使用:

1.将axios导入文件

import axios from 'axios'

2.将axios放入到Vue实例上面,这样在其他组件中,可以直接通过this.$https.get/post使用

在main.js中写:Vue.prototype.$http = axios

其他组件可以直接使用:

this.$http.get('data.txt').then((res)=>{


console.log(res.data);

}).catch((err)=>{


console.log(err);

});

10. element.ui表头点击事件

使用element.ui之后 @click="" 无法对表头等元素添加点击事件,正确的写法应该是@click.native=""

11.webpack2.0 插件的配置需要放到 plugins里面进行配置,不可放到rules里面进行配置

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
php对mongodb的扩展(小试牛刀)
Nov 11 Javascript
Document.location.href和.replace的区别示例介绍
Mar 04 Javascript
javascript实现支持移动设备画廊
Aug 24 Javascript
javascript定义类和类的实现实例详解
Dec 01 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
Feb 17 Javascript
checkbox批量选中,获取选中项的值的简单实例
Jun 28 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
Oct 09 jQuery
JS解析后台返回的JSON格式数据实例
Aug 06 Javascript
vue--点击当前增加class,其他删除class的方法
Sep 15 Javascript
vue router带参数页面刷新或回退参数消失的解决方法
Feb 27 Javascript
javascript使用substring实现的展开与收缩文字功能示例
Jun 17 Javascript
在Vuex中Mutations修改状态操作
Jul 24 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
Apr 10 #jQuery
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
Apr 10 #jQuery
vue构建单页面应用实战
Apr 10 #Javascript
bootstrap suggest下拉框使用详解
Apr 10 #Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
Apr 10 #Javascript
关于vue.js过渡css类名的理解(推荐)
Apr 10 #Javascript
vue.js单页面应用实例的简单实现
Apr 10 #Javascript
You might like
php生成验证码函数
2015/10/20 PHP
php自定义函数实现二维数组按指定key排序的方法
2016/09/29 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
超级简单的图片防盗(HTML),好用
2007/04/08 Javascript
textContent在Firefox下与innerText等效的属性
2007/05/12 Javascript
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
2014/08/30 Javascript
原生js实现瀑布流布局
2017/03/08 Javascript
移动前端图片压缩上传的实例
2017/12/06 Javascript
6行代码实现微信小程序页面返回顶部效果
2018/12/28 Javascript
如何给element添加一个抽屉组件的方法步骤
2019/07/14 Javascript
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
python数据封装json格式数据
2018/03/04 Python
python 字典操作提取key,value的方法
2019/06/26 Python
简单了解Python生成器是什么
2019/07/02 Python
django的ORM操作 增加和查询
2019/07/26 Python
实例详解Python装饰器与闭包
2019/07/29 Python
python实现桌面托盘气泡提示
2019/07/29 Python
python super的使用方法及实例详解
2019/09/25 Python
python动态文本进度条的实例代码
2020/01/22 Python
在TensorFlow中屏蔽warning的方式
2020/02/04 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
在keras中实现查看其训练loss值
2020/06/16 Python
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
汇集了世界上最好的天然和有机美容产品:LoveLula
2018/02/05 全球购物
高校学生干部的自我评价分享
2013/11/04 职场文书
廉洁自律承诺书
2014/03/27 职场文书
活动总结怎么写啊
2014/05/07 职场文书
房产转让协议书(2014版)
2014/09/30 职场文书
社区务虚会发言材料
2014/10/20 职场文书
企业介绍信范文
2015/01/30 职场文书
学校学期工作总结
2015/08/13 职场文书
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers