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 相关文章推荐
jQuery 表单验证插件formValidation实现个性化错误提示
Jun 23 Javascript
jQuery新的事件绑定机制on()示例应用
Jul 18 Javascript
纯JS实现本地图片预览的方法
Jul 31 Javascript
Vue.JS入门教程之自定义指令
Dec 08 Javascript
关于vuex的学习实践笔记
Apr 05 Javascript
详解JS中的attribute属性
Apr 25 Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
Nov 07 Javascript
vue生命周期实例小结
Aug 15 Javascript
三分钟教你用Node做一个微信哄女友(基友)神器(面向小白)
Jun 21 Javascript
如何将Node.js中的回调转换为Promise
Nov 10 Javascript
elementui实现预览图片组件二次封装
Dec 29 Javascript
vue elementUI批量上传文件
Apr 26 Vue.js
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 a simple smtp class
2007/11/26 PHP
PHP Pear 安装及使用
2009/03/19 PHP
php实现统计网站在线人数的方法
2015/05/12 PHP
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
基于JQuery.timer插件实现一个计时器
2010/04/25 Javascript
仅Firefox中链接A无法实现模拟点击以触发其默认行为
2011/07/31 Javascript
jquery 提交值不为空的元素示例代码
2013/05/10 Javascript
去掉gridPanel表头全选框的小例子
2013/07/18 Javascript
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
限制只能输入数字的实现代码
2016/05/16 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
axios学习教程全攻略
2017/03/26 Javascript
Vue组件通信实践记录(推荐)
2017/08/15 Javascript
cocos creator Touch事件应用(触控选择多个子节点的实例)
2017/09/10 Javascript
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
JS Ajax请求会话过期处理问题解决方法分析
2019/11/16 Javascript
JavaScript中的惰性载入函数及优势
2020/02/18 Javascript
[52:57]2014 DOTA2国际邀请赛中国区预选赛 LGD-CDEC VS HGT
2014/05/21 DOTA
python标准算法实现数组全排列的方法
2015/03/17 Python
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
django 获取字段最大值,最新的记录操作
2020/08/09 Python
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
linux面试相关问题
2013/04/28 面试题
表演方阵解说词
2014/02/08 职场文书
尊师重教演讲稿
2014/09/04 职场文书
高三英语教学计划
2015/01/23 职场文书
2015年度学校应急管理工作总结
2015/10/22 职场文书
《社戏》教学反思
2016/02/22 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电
python异步的ASGI与Fast Api实现
2021/07/16 Python
关于python类SortedList详解
2021/09/04 Python