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 相关文章推荐
BOM与DOM的区别分析
Oct 26 Javascript
JavaScript字符串插入、删除、替换函数使用示例
Jul 25 Javascript
Get中文乱码IE浏览器Get中文乱码解决方案
Dec 26 Javascript
JQuery中$.each 和$(selector).each()的区别详解
Mar 13 Javascript
JS中的Replace方法使用经验分享
May 20 Javascript
微信WeixinJSBridge API使用实例
May 25 Javascript
jQuery垂直多级导航菜单代码分享
Aug 18 Javascript
基于vue2实现左滑删除功能
Nov 28 Javascript
vue todo-list组件发布到npm上的方法
Apr 04 Javascript
JavaScript实现背景自动切换小案例
Sep 27 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
Nov 19 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
Jun 15 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+xslt在windows平台上
2006/10/09 PHP
php文件上传表单摘自drupal的代码
2011/02/15 PHP
PHP静态成员变量
2017/02/14 PHP
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
String.prototype实现的一些javascript函数介绍
2013/11/22 Javascript
javascript中HTMLDOM操作详解
2014/12/11 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
jquery+php随机生成红包金额数量代码分享
2015/08/27 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
2017/01/20 Javascript
Ionic 2 实现列表滑动删除按钮的方法
2017/01/22 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
JavaScript实现各种排序的代码详解
2017/08/28 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
JS实现联想、自动补齐国家或地区名称的功能
2020/07/07 Javascript
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
跟老齐学Python之集成开发环境(IDE)
2014/09/12 Python
Python本地与全局命名空间用法实例
2015/06/16 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
python实现隐马尔科夫模型HMM
2018/03/25 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
python logging日志模块原理及操作解析
2019/10/12 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
应届生程序员求职信
2013/11/05 职场文书
毕业自荐信
2013/12/16 职场文书
委托书范文
2014/04/02 职场文书
《青蛙看海》教学反思
2014/04/23 职场文书
出生医学证明书
2014/09/15 职场文书
七年级生物教学反思
2016/02/20 职场文书
Python爬虫基础讲解之请求
2021/05/13 Python
JavaScript ES6的函数拓展
2022/01/18 Javascript
css3 文字断裂效果
2022/04/22 HTML / CSS