处理IE11下的Promise和Vue单数据流
最近发现我公司的竞赛网站在IE11下没有数据,但是在其他浏览器下还可以。然后我打开控制台,发现以下错误:
真的喝醉了,然后发现有三个可行的方案:
直接采用polyfill
在index.html,
脚本src=' https://cdn.polyfill.io/v2/polyfill.min.js'/script或脚本类型='文本/JavaScript ' src=' https://cdn.polyfill.io/v2/polyfill.min.js?功能=es6 '/脚本手写js脚本判断
脚本类型='text/javascript '函数isIE() { if(!窗户。窗口中的ActiveX object | | ' ActiveX object '){返回true} else { return false} } if(ISie()){ var script=document . create element(' script ');script . type=' text/JavaScript ';script . src=' js/blue bird . min . js ';//蓝鸟文件地址//http://cdn . jsdeliver . net/blue bird/3 . 5 . 0/blue bird . min . js document . getelementsbytagname(' head ')[0]。appendchild(脚本);}/安装新依赖项的脚本
1、npm安装-保存巴贝尔-polyfill
2.导入main.js文件顶部的“babel-poly ill”
3.将构建目录中webpack.config.js文件的条目更改为以下内容(如果您的项目使用脚手架,请将构建目录中webpack.base.config.js文件的条目更改为)
model . exports={ entry : { app:[' babel-poly fill ','。/src/main . js ']} vue倡导的单一数据流
在编写vue组件的过程中,我们经常会遇到这样的情况:子组件所需的参数由props属性中的prop获取,父组件通过命名的prop将子组件所需的内容传递给子组件,Vue主张数据流的方向只能从父组件流向子组件。当父组件的数据改变时,通知子组件改变相应的属性,但不要反过来。子组件的更改会影响父组件。禁止这种行为,因为会导致数据混乱,不易定位错误。
虽然经常用子组件来编写以省事,但是子组件直接改变父组件的状态,但是错误会报告如下:
然后,为了改变父组件的状态,Vue提供了两种常见的解决方案:
通过数据中的变量初始化所需的道具
Props: ['initialcounter'],data : function(){ return { counter : this。initialcounter}}使用要处理的属性来定义计算属性
prop :[' size '],computed : { normalize size : function(){ return this。size.trim()。tolower case ()}}当然,如果一个子组件想要与其父组件进行通信,可以简单地采用以下方法
$emit触发事件,父组件接受子组件发出的事件,然后在父组件中修改自己的变量是合乎逻辑的。关于模块。节点中的导出和导出以及ES6中的导出和导出默认值
在node中,每个文件都被视为一个独立的模块,只有一个接口(实际上是一个对象)暴露给外界:module.exports
该模块代表当前模块,其exports属性负责与外界通信。加载外部模块意味着加载模块的内容。
//add . jsvar temp=1;var addNumber=函数(值){返回值1;};module . exports . temp=temp;module . exports . addNumber=addNumber;//另一个js文件引用add.jsvar add=require('。/add.js') console.log ('add is ',add)//add is {temp: 1,Add number :[function : Add number]} console . log(Add . temp)//1 console . log(Add . Add number(1))//2通常,为了方便起见,每个节点模块的表头都有一个默认的句子:var exports=module.exports。
为了方便起见,可以直接添加方法module.exports对象,也可以在外部更改,但是不能将exports变量指向其他变量。一旦这样做,您将切断导出和模块之间的连接。
但是节点采用CommonJs规范,ES6采用新规范导入导出(对应require和export)
//es6 example . jsvartemp=' temp ' export { temp }//同样,export只是一个接口,它必须有大括号,除非下面介绍的export default//export命令指定了一个外部接口,该接口必须与模块内部的变量建立一一对应关系。一般来说不能是固定值,应该是变量或者函数//使用example import {example} from '。/example . js ' console . log(example . temp)//“temp”//同样,ES6也有默认写入导出默认var temp=“new”
以上是边肖介绍的IE11下Promise和Vue的单数据流。希望对大家有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!如果你觉得这篇文章对你有帮助,请转载,请注明出处,谢谢!
版权声明:处理IE11下的Promise和Vue单数据流是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。