最新要闻
- 吃面比吃米更易发胖 西安交大团队证实:三大原因
- 当前聚焦:中国联通空中基站研制成功:无人机留空最长8小时 信号覆盖100平方公里
- 爱玛MVP战神新国标电动两轮车直降千元:1499元 能跑40km
- 【天天报资讯】V社“钓鱼”打击外挂:《Dota 2》一次性封禁4万作弊玩家
- 全球聚焦:百度2022年赚了207亿 李彦宏放大招:多项业务整合文心一言
- 全球看点:孙正雯微博_孙正雯
- 女子连刷11个差评被曝光 当事人要起诉商家:视频流传到全网 严重影响生活
- 肉眼可见!今晚上演金星伴月木星相随 不看亏大了
- 热门看点:一年挣了3700亿元 马斯克被股东联合起诉:工资太高
- 热议:ROG推出新款XG27AQMR显示器:2K Fast IPS、300Hz刷新率
- 迅雷重磅升级堪比NAS:远程可看电脑片库 手机、电脑、电视全打通
- 三元锂电池剧烈萎缩 比亚迪刀片电池走对了:消费者纷纷买单
- 精彩看点:研究发现AI在某些方面不如婴儿:很难监测人类行为动机
- 死磕到底!车顶维权女车主:特斯拉刹车失灵事件过去3年 官方仍未提供数据
- 世界今日报丨RTX 4070游戏本性能平平:有媒体评测一半放弃了!
- 环球消息!会员数近1.2亿!爱奇艺2022首次全年盈利:净利13亿 会员限制已妥协
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
世界时讯:Vue相关笔记
Promise基本使用
Promise
是异步编程的一种解决方案,用于一个异步操作的最终完成(或失败)及其结果值的表示,比传统的回调函数方案更加合理。
(相关资料图)
var promise = new Promise((resolve, reject) => {/* executor函数 */ // ... some code if (/* 异步操作成功 */){ resolve(value); } else { reject(error); }});promise.then((value) => { //success}, (error) => { //failure})
简单实用
function timeout(ms) { return new Promise((resolve, reject) => { setTimeout(resolve, ms, "done"); });}timeout(2000).then((value) => { console.log(value); //done});
var timeoutID = scope.setTimeout(function, [delay, arg1, arg2, ...]);
arg1, ..., argN
可选
附加参数,一旦定时器到期,它们会作为参数传递给function
Promise
对象在创建后立即执行,then
方法指定的回调函数,将在当前脚本所有同步任务执行完才会执行。- 如果调用
resolve
函数和reject
函数时带有参数,那么它们的参数会被传递给回调函数。reject
函数的参数通常是Error
对象的实例,表示抛出的错误;resolve
函数的参数除了正常的值以外,还可能是另一个Promise
实例。
const p = new Promise((resolve,reject) => { return reject(new Error("err")); //reject方法的作用,等同于抛出错误 //throw new Error("err");});p.then(null, (err) => { console.log(err); //Err: err});//--------等价写法---------p.catch(err => { console.log(err); //Err: err})
一般总是建议,Promise
对象后面要跟catch
方法,这样可以处理 Promise
内部发生的错误。catch
方法返回的还是一个 Promise
对象,因此后面还可以接着调用then
方法。
new Promise(() => { throw new Error("err1");}) .then(() => {console.log(1);}) .then(() => {console.log(2);}) .catch((err) => { console.log(err); //Err: err1 throw new Error("err2"); }) .catch((err) => {console.log(err);})//Err: err2
Promise
对象的错误具有“冒泡”性质,会一直向后传递,直到被捕获为止。也就是说,错误总是会被下一个catch
语句捕获。 即:当前catch
方法可以捕获上一个catch
方法(包括上一个catch
)到当前catch
(不包括当前catch
)方法之间所有的错误,如果没有错误,则当前catch
方法不执行。
// badnew Promise() .then((data) => {/* success */ }, (err) => {/* error */ });// goodnew Promise() .then((data) => { /* success */ }) .catch((err) => {/* error */ });
一般来说,不要在then
方法里面定义Reject
状态的回调函数(即then
的第二个参数),总是使用catch
方法。第二种写法要好于第一种写法,理由是第二种写法可以捕获前面then
方法执行中的错误,也更接近同步的写法。
vue里的export default
export命令用于规定模块的对外接口。
一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。
// profile.jsvar firstName = "Michael";var lastName = "Jackson";var year = 1958;export {firstName, lastName, year};
export
命令对外输出了指定名字的变量(变量也可以是函数或类)
与export default
命令的区别:import命令接受一对大括号,里面指定要从其他模块导入的变量名。大括号里面的变量名,必须与被导入模块(profile.js)对外接口的名称相同。
export default命令,为模块指定默认输出。
与export命令的区别:其他模块加载该模块时,import命令可以为该匿名函数指定任意名字。
// export-default.jsexport default function () { console.log("foo");}
// import-default.jsimport customName from "./export-default";customName(); // "foo"
new VUE()
【Vue.config】 各种全局配置项
【Vue.util】 各种工具函数,还有一些兼容性的标志位
【Vue.set/delete】
【Vue.nextTick】
【Vue.options】 这个options和用来构造实例的options不一样。这个是Vue默认提供的资源(组件指令过滤器)。
【Vue.use】 通过initUse方法定义
【Vue.mixin】 通过initMixin方法定义
【Vue.extend】通过initExtend方法定义
new Vue({ render: h => h(App),}).$mount("#app")
render函数是vue通过js渲染dom结构的函数createElement,约定可以简写为h
实际缩写前为:
render:function(createElement){ return createElement(App);}
实际渲染
import App from "./App"import Vue from "vue"new Vue({ el:"#root", template:" ", components:{ App }})
在Vue构造函数时,需要配置一个el属性,如果没有没有el属性时,可以使用.$mount("#app")进行挂载。
// 配置了el属性:new Vue({ el:"#app", router});// 如果没有配置el属性,可以使用手动挂载$mount("#app")new Vue({ router}).$mount("#app");// 该方法是直接挂载到入口文件index.html 的 id=app 的dom 元素上的
render:h=>h(App)
1、ES6的写法,表示Vue实例选项对象的render方法作为一个函数,接受传入的参数h函数,返回h(App)的函数调用结果2、Vue在创建Vue实例时,通过调用render方法来渲染实例的DOM树3、Vue在调用render方法时,会传入一个createElement函数作为参数,也就是这里的h的实参是createElement函数,然后createElement会以App为参数进行调用。
Vue.use()的作用及原理
官方对 Vue.use() 方法的说明:通过全局方法 Vue.use() 使用插件,Vue.use 会自动阻止多次注册相同插件,它需要在你调用 new Vue() 启动应用之前完成,Vue.use() 方法至少传入一个参数,该参数类型必须是 Object 或 Function,如果是 Object 那么这个 Object 需要定义一个 install 方法,如果是 Function 那么这个函数就被当做 install 方法。在 Vue.use() 执行时 install 会默认执行,当 install 执行时第一个参数就是 Vue,其他参数是 Vue.use() 执行时传入的其他参数。就是说使用它之后调用的是该组件的install 方法。
Vue.use
是用来安装插件的。
它在使用时实际是调用了该插件的install方法,所以引入的当前插件如果含有install方法我们就需要使用Vue.use(),例如在Vue中引用Element如下:
import Vue from "vue"import Element from "element-ui"Vue.use(Element)
因为在Element源码中会暴露除install方法,所以才需要用Vue.use()引入。
例如:
vueRouter需要在install方法,对Vue实例做一些自定义化的操作:比如在vue.prototype中添加$router、$route属性、注册
而axios是基于Promise封装的库,是完全独立于Vue的,根本不需要挂载在Vue上也能实现发送请求。
vue-router 为什么需要放到 new Vue({router}) options 里
插件通常用来为 Vue 添加全局功能。插件的功能范围没有严格的限制——一般有下面几种:
添加全局方法或者属性。如: vue-custom-element添加全局资源:指令/过滤器/过渡等。如 vue-touch通过全局混入来添加一些组件选项。如 vue-router添加 Vue 实例方法,通过把它们添加到 Vue.prototype 上实现。一个库,提供自己的 API,同时提供上面提到的一个或多个功能。如 vue-router
使用插件也很简单,通过全局方法 Vue.use()
使用插件,注意它的调用需要在 new Vue()
之前。
但是在使用 vue-router
插件时还需要增加一个 options
:
// 调用 `router.install(Vue)`Vue.use(router)new Vue({ // ...组件选项 router})
hash 路由和 history 路由
- hash 路由:监听 url 中 hash 的变化,然后渲染不同的内容,这种路由不向服务器发送请求,不需要服务端的支持;
- history 路由:监听 url 中的路径变化,需要客户端和服务端共同的支持;
hash
—— 即地址栏 URL 中的 # 符号
比如这个 URL:http://www.aaa.com/#/hello,hash 的值为 #/hello。它的特点在于:hash 虽然出现在 URL 中,但不会被包括在 HTTP 请求中,对后端完全没有影响,因此改变 hash 不会重新加载页面。
history
—— 利用了 HTML5 History Interface 中新增的 pushState() 和 replaceState() 方法。(需要特定浏览器支持)这两个方法应用于浏览器的历史记录栈,在当前已有的 back、forward、go 的基础之上,它们提供了对历史记录进行修改的功能。只是当它们执行修改时,虽然改变了当前的 URL,但浏览器不会立即向后端发送请求。
Hash 模式是使用 URL 的 Hash 来模拟一个完整的 URL,因此当 URL 改变的时候页面并不会重载。History 模式则会直接改变 URL,所以在路由跳转的时候会丢失一些地址信息,在刷新或直接访问路由地址的时候会匹配不到静态资源。因此需要在服务器上配置一些信息,让服务器增加一个覆盖所有情况的候选资源,比如跳转 index.html 什么的
hash路由 优缺点
- 优点
- 实现简单,兼容性好(兼容到
ie8
) - 绝大多数前端框架均提供了给予
hash
的路由实现 - 不需要服务器端进行任何设置和开发
- 除了资源加载和
ajax
请求以外,不会发起其他请求
- 实现简单,兼容性好(兼容到
- 缺点
- 对于部分需要重定向的操作,后端无法获取
hash
部分内容,导致后台无法取得url
中的数据, - 服务器端无法准确跟踪前端路由信息
- 对于需要锚点功能的需求会与目前路由机制冲突
- 对于部分需要重定向的操作,后端无法获取
History(browser)路由 优缺点
- 优点
- 对于重定向过程中不会丢失
url
中的参数。后端可以拿到这部分数据 - 绝大多数前段框架均提供了
browser
的路由实现 - 后端可以准确跟踪路由信息
- 可以使用
history.state
来获取当前url
对应的状态信息
- 对于重定向过程中不会丢失
- 缺点
- 兼容性不如
hash
路由(只兼容到IE10
) - 需要后端支持,每次返回
html
文档
- 兼容性不如
$route和$router的区别
1.$router是VueRouter的一个对象,通过Vue.use(VueRouter)和Vue构造函数得到一个router的实例对象,这个对象中是一个全局的对象,他包含了所有的路由,包含了许多关键的对象和属性。
2.$route
是一个跳转的路由对象,每一个路由都会有一个$route对象,是一个局部的对象,可以获取对应的name,path,params,query等
全局事件总线
全局事件总线说到底就是个对象,我们通常就是用vm对象作为全局事件总线使用把vm对象添加到Vue原型对象 就形成全局事件总线(vm)
1、所有的组件对象必须都能看得到这个总线对象,因此我们把这个对象放在了Vue原型2、这个事件总线对象必须能调用$on和$emit方法(总线对象必须是Vue的实例化对象或者是组件对象)
1、vm.$on( event, callback )
监听当前实例上的自定义事件。事件可以由vm.$emit触发。回调函数会接收所有传入事件触发函数的额外参数。
2、vm.$emit( event, […args] )
触发当前实例上的事件。附加参数都会传给监听器回调,如果没有参数,形式为vm.$emit(event)
3、vm.$off( [event, callback] )
移除自定义事件监听器。
世界时讯:Vue相关笔记
吃面比吃米更易发胖 西安交大团队证实:三大原因
当前聚焦:中国联通空中基站研制成功:无人机留空最长8小时 信号覆盖100平方公里
爱玛MVP战神新国标电动两轮车直降千元:1499元 能跑40km
【天天报资讯】V社“钓鱼”打击外挂:《Dota 2》一次性封禁4万作弊玩家
全球聚焦:百度2022年赚了207亿 李彦宏放大招:多项业务整合文心一言
世界报道:Vue3从基础到精通
【算法训练营day56】LeetCode583. 两个字符串的删除工作 LeetCode72. 编辑距离
全球看点:孙正雯微博_孙正雯
女子连刷11个差评被曝光 当事人要起诉商家:视频流传到全网 严重影响生活
肉眼可见!今晚上演金星伴月木星相随 不看亏大了
热门看点:一年挣了3700亿元 马斯克被股东联合起诉:工资太高
热议:ROG推出新款XG27AQMR显示器:2K Fast IPS、300Hz刷新率
迅雷重磅升级堪比NAS:远程可看电脑片库 手机、电脑、电视全打通
当前动态:vue08----()
全球讯息:Cloudkit游标分页获取数据
教你编写SQLMap的Tamper脚本过狗
职场IT老手教你3步教你玩转可视化大屏设计,让领导眼前一亮!
三元锂电池剧烈萎缩 比亚迪刀片电池走对了:消费者纷纷买单
精彩看点:研究发现AI在某些方面不如婴儿:很难监测人类行为动机
死磕到底!车顶维权女车主:特斯拉刹车失灵事件过去3年 官方仍未提供数据
世界今日报丨RTX 4070游戏本性能平平:有媒体评测一半放弃了!
环球消息!会员数近1.2亿!爱奇艺2022首次全年盈利:净利13亿 会员限制已妥协
每日热门:【算法训练营day55】LeetCode392. 判断子序列 LeetCode115. 不同的子序列
今日快看!vue+html5实现上传图片
【全球播资讯】Linux命令-文件、磁盘管理
大势前瞻!文旅还是短视频,你弯道超车风口在这了
环球关注:杭州余杭新居民落户当天可拿市民卡,医保、社保同时办理
世界快资讯:网红老师张雪峰吐槽还60万房贷利息57万 道歉:朋友弄错了
有灵魂的米饭:仓浪河东北黑龙江五常大米稻花香5kg 37.9元大促
天天即时看!经典之作退场!开发商Rovio宣布《愤怒的小鸟》将下架安卓平台
当前滚动:广东一车主加完油从车窗撒钱离去引众怒:车主回应已致歉 为何最基本尊重做不到
1个App能扫全品牌共享单车!全能车被哈啰告上法庭判赔六千万元
环球百事通!拍一拍后缀怎么弄
今日热文:浅识面向对象和面向过程
世界短讯!Framework 中使用 Toolkit.Mvvm 的生成器功能
科幻杂志被ChatGPT生成投稿“淹没”:无奈关闭投稿渠道
拿下一百多项年度大奖!《艾尔登法环》累计销量破2000万份
世界最新:头皮发麻!半夜追剧腾讯视频突然跳转恐怖片 客服:需重新下载客户端
当前滚动:博主实测理想L7越野性能 李想:中国路上95%的车 一个项目都过不去
天天热消息:新一代国产本田雅阁内饰曝光:比美版少了多个实体按键
每日聚焦:大数据应用场景下,标签策略如何实现价值最大化?
通讯!98%的程序员,都没有研究过JVM重排序和顺序一致性
环球即时看!查看Linux系统下CPU、内存、硬盘等信息
环球短讯!第121篇: DOM常用类型(Document、Element)
全球实时:CountDownLatch的使用
世界速讯:鹏都农牧:缅甸肉牛暂无法通关,公司正在积极推进复工复产工作
天天看点:10岁小学生玩游戏18天花掉14万 退款申请腾讯无视:家长感慨一定看好支付密码
焦点精选!摩托罗拉Razr 2023外观曝光:超大外屏抢眼
全球微头条丨安卓都16GB内存了 iPhone 15 Pro还在挤牙膏
【时快讯】或6.58万起 疑似比亚迪海鸥售价曝光:最远能跑405km
中国香港影史首部票房破亿华语电影诞生 此前TOP10均为好莱坞
每日快看:【黑科技】GPS北斗卫星授时技术下的NTP网络时间服务器
世界热头条丨每天走路10000步很健康?错 大错特错!
踢翻日系!比亚迪又要对BBA动手了
当前报道:20年来最低点!PC出货量暴跌:Intel等巨头业绩“凉凉” 显卡存储也没人买
SpringCloud+Dubbo3 = 王炸 !
世界微动态丨理想汽车:被4S店PUA、不如看看直营无套路零售中心
网红玩具有危险!2岁幼童误吞28颗磁力珠 医生提醒:必须及时取出
叫板特斯拉 保时捷:单踏板模式制动能量回收效率不高
座位被占 女子爬火车行李架睡觉:千万不要模仿
环球资讯:WiFi万能钥匙联合长安汽车,“一键连接”拓展至车机端
木鱼cms系统审计小结
世界资讯:单调栈
灵魂摆渡的作者真的杀了他的妻子吗?灵魂摆渡的经典台词有哪些?
董明珠回应直播带货争议:不是为了卖产品 是推广技术
当前关注:12万就能上太空!日企将用高空气球开启太空旅游
【天天播资讯】昔日国内共享单车巨头!ofo小黄车被曝无法登录:超1600万人押金没退
“AI飞行员”成功驾驶战斗机 美国顶尖飞行员曾是手下败将
播报:暴雪公布《暗黑破坏神4》实机画面:有《暗黑2》那味了
六一儿童节的优美句子有哪些?关于六一儿童节的作文汇总
移动空调效果如何选择?移动空调哪个牌子好又实惠省电?
迅雷崩溃是怎么回事?迅雷崩溃怎么解决?
家用数码相机怎么选?家用数码相机什么牌子最好?
三星S8000c什么时候上市的?三星s8000c功能介绍
直播预告 | 企业如何轻松完成数据治理?火山引擎 DataLeap 给你一份实战攻略!
分层测试(五):端到端测试
热文:李楠谈网暴 在线教网友“如何避免成为网暴的施暴者”
要闻速递:终于告别“板砖”适配器!联想拯救者Y9000P 2023将支持140W便携快充
499元 雷蛇炼狱蝰蛇V3专业版发布:59克超轻量化设计
融资客最看好个股一览
【码农教程】手把手教你学会Mockito使用
世界热门:用一个例子学会适配器设计模式
天天视点!量化工具篇
世界播报:2.概率论
视焦点讯!(数据库系统概论|王珊)第六章关系数据理论-第二节:规范化
别乱买!三大要素教你如何选对吸尘器
环球看点!一次看个够!《原子之心》双子舞伶所有场景合集
世界时讯:微软为Chrome官网注入大幅广告:只为将用户留在Edge
天天热资讯!微软收购动视暴雪获新盟友!NVIDIA态度转变签署10年游戏协议
热门:读Java实战(第二版)笔记17_反应式编程
每日播报!若若_关于若若的简介
焦点速读:长沙凌晨1点马路人流量惊人 像在倒时差:网友称想去打卡 当地人回应
全球最资讯丨8GB来了!iPhone 15内存大升级:苹果区别对待 想要花万元买Pro版
环球热头条丨荣耀Magic5 Lite获DXO电池性能第一名 续航可超三天
雷克萨斯、英菲尼迪、凯迪拉克等豪车中国市场暴跌:国人不当冤大头
今日聚焦!面试官:怎么去除 List 中的重复元素?我一行代码搞定,赶紧拿去用!
热文:OPPO打造!唯一配备潜望长焦的天玑旗舰来了
天天短讯!死磕RTX 40!AMD RX 7600/7700/7800齐曝光:据说苏妈定价有诚意
重现《放羊的星星》!林志颖特斯拉车祸后复出晒照 事故原因成谜 是踩错刹车?