嵌套、属性、乘法、编号、文本操作符
嵌套操作符 引用自知乎> (子元素)div>ul>li表现为: 12345<div> <ul> <li></li> </ul></div> + (兄弟元素)div+p+bq表现为: 123<div></div><p></p><blockquote></blockquote> ^ 返回上层 使用 ^ 运算符,您可以爬上树的一个层次,并更改上下文div+div>p>span+em^bq表现为:123456<div></div><div> <p><span></span><em></em></p> <blockquote></blockquote></div>// 此时的上下文返回到两个div所在的这一层了 当然了,^...
对象属性合并
合并对象this.info = {…this.info,…dataObj)它会将this.info和dataObj的所有属性合并,如果有重复的,优先取后边dataObj的。最后整合后提交给this.info
配置代理服务器和样式文件优化
配置代理服务器(方式1)前端从8080访问5000端口时会被cros拦截,因此在vue.config.js下配置一个代理服务器,他会替你转发命令 1234//开启代理服务器devServer: { proxy: 'http://localhost:5000'} 不太完美 更好的方法。(方式2)开启代理服务器 12345678910111213141516devServer:{ proxy: { //请求前缀,(路径名) '/api': { target: '<url>', pathRewrite:{'^/api':''}//用于去处前缀发送一个不带前缀的请求。 //当然,可以选择和后端服务器统一前缀,这样也可以不用去除前缀发送。 ws: true,//用于支持websocket ...
axios Promise 响应封装
axiosaxios也是返回一个promise对象,他会封装两个结果,成功即为response,需要取出从服务器获得的响应数据,response.data。失败为error,需要获取为error.message。
Fetch API:Promise 驱动的异步请求
Fetchfetch是与xhr不同的另一种发送请求的方法。他本身也是一种已经实现的API。他并不需要通过回调请求,而是采用了promise的返回结果方式,采用了链式结构。 当接收到一个代表错误的 HTTP 状态码时,从 fetch() 返回的 Promise 不会被标记为 reject,即使响应的 HTTP 状态码是 404 或 500。相反,它会将 Promise 状态标记为 resolve(如果响应的 HTTP 状态码不在 200 - 299 的范围内,则设置 resolve 返回值的 ok 属性为 false),仅当网络故障时或请求被阻止时,才会标记为 reject。 fetch 不会发送跨域 cookie,除非你使用了 credentials 的初始化选项。(自 2018 年 8 月以后,默认的 credentials 政策变更为 same-origin。Firefox 也在 61.0b13 版本中进行了修改)123fetch('http://example.com/movies.json') .then(response =>...
Ajax、XHR、Fetch、Axios 关键图解
关键图解 Ajax全称(Asynchronous JavaScript And XML) Ajax 是一个技术统称,是一个概念模型,它囊括了很多技术,并不特指某一技术,它很重要的特性之一就是让页面实现局部刷新。他可以局部刷新页面,不用重载整个页面。 XHRXHR(XmlHttpRequest)是一种用来实现Ajax的方法示例: 123456789101112131415161718<body> <script> function ajax(url) { const xhr = new XMLHttpRequest(); xhr.open("get", url, false); xhr.onreadystatechange = function () { // 异步回调函数 if (xhr.readyState === 4) { if (xhr.status === 200) { ...
Vue获取DOM节点和事件处理
获取dom节点。获取input的dom节点,然后让他被focus。 1this.$refs.input.focus() 然而,vue并不会改一次数据就重新渲染模板,可以设置定时器后再修改,这样就会渲染完模板。 $nextTick函数他会在模板解析完后再执行新的函数 12345...this.$nextTick(function(){ this.$refs.input.focus()}... @blur事件。当输入框失去焦点时调用。
消息订阅发布和Vue.set使用
pubsub实现消息订阅于发布先安装pubsub 1npm i pubsub-js 可以实现消息订阅与发布,他的操作主要有subscribe订阅,unsubscribe取消订阅,publish发布消息。每次取消订阅需要获取订阅的id再用案例订阅。 123456789101112131415161718192021222324252627282930313233343536373839404142//学校<script>import pubsub from 'pubsub-js'; export default({ name:'school', data(){ return{ schoolName:'湖科大', addr:'湖南' } }, mounted(){ const pubid =...
HTTP连接类型:短连接VS长连接
引用自csdn 短连接:连接->传输数据->关闭连接比如HTTP是无状态的的短链接,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。 长连接:因为连接后接收了数据就断开了,所以每次数据接受处理不会有联系。 这也是HTTP协议无状态的原因之一。连接->传输数据->保持连接 -> 传输数据-> ………..->直到一方关闭连接,多是客户端关闭连接。长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差。
全局事件总线实现
全局事件总线 初步想法,维系一个全局可以获得的变量,可以直接在main.js中定义一个window.x={name:hzt},然后全局都可以通过window.x获得该元素。 进一步思考,让所有的vc可以访问到该元素,可以在VueComponent.prototype上放属性。但是VueComponent必须为Vue.extend调用生成,而且他一定是新生成的VueComponent。或者直接进入源码修改 一个很重要的内置关系VueComponent.prototype._proto_ === Vue.prototype3. 因此可以在Vue.prototype中引入全局事件总线。4. 这里任然没有解决问题,因为只有一个vc或者vm实例对象才可以使用$on,$emit,因此要加一个vc,或者vm,或者直接绑定最大的父亲vm.prototype.$bus last(最终写法)在main.js中 12345678//创建vmnew Vue({ el:'#app', render: h => h(App), ...