Vue在页面直接展示模板语法{{xx}}

用vue.js写成的页面中,可能出现由于外部请求导致的页面展示阻塞现象,进而导致模板语法{{xxx}}直接展示在页面上,这其实跟页面加载的流程有关,整个页面加载的流程是: 解析html结构 -> 加载外部脚本和样式表文件 -> 解析并执行脚本代码 -> 构造HTML DOM模型 -> 加载图片等外部文件 -> 页面加载完毕 所以,当HTML加载的时候,就会把{{}} 当成文本加载出来,只有当vue初始化完成后,才会把{{}}解析成vue的语法。 遇到这种情况有以下几种解决方案: 方案一(不推荐):在head里面加入引入vue的script标签 如果把引入vue的script放到head里面,那页面就不会出现{{}},因为在body之前,vue就已经引入进并且加载完成了。 方案二:v-text|v-html 使用v-text插入文字,使用v-html插入HTML结构,替换原本使用的模板语法{{xxx}} 方案三:template 使用<template>标签包裹要渲染的HTML结构,那么只有vue解析时才会展示出该结构 方案四:v-cloak指令 + CSS样式 标签上的v-cloak属性在被vue解析到时会自动去掉,那么我们可以利用CSS的属性选择器,给有v-cloak属性的元素设置display:none样式,那么,在加载HTML时自然不会显示{{xxx}},而在vue解析时又会显示出来,问题得以解决!

Apr 7, 2022 · 1 min · Archai

测试shortcodes

Bilibli tecent video Your browser doesn't support HTML5 video. Here is a link to the video instead.

Apr 4, 2022 · 1 min · Archai

浏览器本地存储

webStorage 存储内容大小一般支持5MB左右(不同浏览器可能还不一样)。 浏览器端通过Window.sessionStorage和Window.localStorage属性来实现本地存储机制。 相关API: xxxStorage.setItem('key','value'); 该方法接受一个键和值作为参数,会把键值对添加到存储中,如果键名存在,则更新其对应的值。 xxxStorage.getItem('key'); 该方法接受一个键名作为参数,返回键名对应的值。 xxxStorage.removeItem('key'); 该方法接受一个键名作为参数,并把该键名从存储中删除。 xxxStorage.clear(); 该方法会清空存储中的所有数据。 备注: SessionStorage存储的内容会随着浏览器窗口关闭而消失。 LocalStorage存储的内容,需要手动清除才会消失。 xxxStorage.getItem('key');如果key对应的value获取不到,那么getItem的返回值是null。 可以通过JSON.stringify()存储对象,通过JSON.parse()解析对象,JSON.parse(null)的结果仍然是null。

Mar 30, 2022 · 1 min · Archai

Vue中的数据监视原理

1.vue会监视data中所有层次的数据. vue对于配置在data中的所有对象都会以key值作为目标进行监视,不论多少层,都会递归地为每一个key配置getter和setter(通过Object.defineProperty())。 相关阅读 MDN关于defineProperty的说明 2.如何监测对象中的数据? 通过setter实现监视,且要在new Vue时就传入要监测的数据,即在data中提前配置。 (1).对象中后追加的属性,Vue默认不做响应式处理 直接通过修改vm._data或者vm来添加key,并不会配置getter和setter,因此不会做响应式 (2).如需给后添加的属性做响应式,请使用如下API: Vue.set(target,key/index,value)或vm.$set(target,key/index,value)(可以同时修改数组和对象) ​ 特别注意: Vue.set()和vm.$set()不能直接给vm或vm的根数据对象(vm._data)添加属性!!! 3.如何监测数组中的数据? 在数组中直接通过索引的方式修改数组并不会引起Vue的响应,那么要如何做呢?Vue通过包裹数组更新元素的方法(对原数组方法进行修改)实现,本质就是做了两件事: (1). 调用原生对应的方法对数组进行更新. (2). 重新解析模板,进而更新页面. 就包裹了下面的七种数组方法: push() pop() shift() unshift() splice() sort() reverse() 也就是说,通过上面七种方法修改数组,会让Vue做出响应。 例如想要修改数组中索引为0的位置的数据,可以通过 vm.data.arr.splice(0,0,val)或Vue.set(vm.data.arr,0,val)又或者vm.$set(vm.data.arr,0,val),在具体的由Vue管理的方法中this指向的应该就是vm!! 数据劫持 Vue通过setter,getter对数据进行动态监测,其实就是“劫持”了数据😯

Mar 21, 2022 · 1 min · Archai

canvas绘制跟随鼠标移动的线条

在浏览网页时无意中发现了下面这种背景互动的效果: 通过一番周折,最终找到以下实现代码 function randomLine() { function n(n, e, t) { return n.getAttribute(e) || t } function e(n) { return document.getElementsByTagName(n) } function t() { var t = e("script"), o = t.length, i = t[o - 1]; return { l: o, z: n(i, "zIndex", -88), o: n(i, "opacity", .5), c: n(i, "color","0,0,0"), n: n(i, "count", 150) } } function o() { a = m.width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, c = m....

Mar 20, 2022 · 3 min · Archai

通过U盘安装Windows系统

创建U盘介质 有至少 8GB 空间的空白 U 盘,若不是空白创建介质时会自动清空。 🐾官方工具: https://go.microsoft.com/fwlink/?LinkId=691209 直接下载按照提示操作就行了,不过仅限win10 🐾ventoy(绿色开源): 官网 蓝奏云 直链下载 第一步:选择设备 第二步:安装 第三步:将下载的系统镜像 .iso 文件移动到U盘即可,这里推荐一个下载windows正版系统的网站 ITELLYOU 注意保存必要文件 如果电脑无法正常打开

Sep 19, 2021 · 1 min · Archai