摘要:發(fā)現(xiàn)了第七個(gè)知識(shí)點(diǎn)七的區(qū)別和遵循的是模塊規(guī)范。消息摘要算法,不可逆加密。,是信息摘要,確保信息的唯一性。其實(shí)就是排除數(shù)字只能是英語或者特殊字符發(fā)現(xiàn)的校驗(yàn)比較全的網(wǎng)站鏈接地址鏈接地址注判斷長度的時(shí)候,英文字母和中文漢字占的字節(jié)數(shù)不同。
*注:本文章是在工作過程中所接觸的知識(shí)點(diǎn)的整理,涉及的東西比價(jià)雜亂,如有錯(cuò)誤之處,歡迎糾錯(cuò)與指導(dǎo)一, 新窗口打開頁面 1, js跳轉(zhuǎn)頁面與新窗口的打開
1.1, 超鏈接Welcome
等同于
window.location.href="XXXXX";//在同當(dāng)前窗口中打開窗口
1.2, 超鏈接Welcome
等同于
window.open("XXXXX"); //在另外新建窗口中打開窗口
1.3, 在原來的窗體中直接跳轉(zhuǎn)用
window.location.href="你所要跳轉(zhuǎn)的頁面";
2.1,
新頁面打開home頁
2.2, 編程式導(dǎo)航
可以借助router的示例方法,通過編寫代碼實(shí)現(xiàn)。但是vue2.0之后, $router.push 和 $router.go不支持新窗口打開的屬性。所以使用 $router.resolve
openNewWindow(){ let routeUrl = this.$router.resolve({ path: "/openNewWindow" }); window.open(routeUrl.href, "_blank"); }二, 獲取屬性的方法總結(jié)
屬性:用input標(biāo)簽為例,value id style disabled等就是屬性。
獲取屬性的方法如下
var oText = document.getElementById("text")
oText.value可以直接獲取到
注意:2, 通過中括號(hào)[]的方式。
1, 點(diǎn)要查找的是JS中本來就存在的屬性名,不能找到變量或者函數(shù)的參數(shù)
2, 標(biāo)準(zhǔn)瀏覽器下無法訪問html中的自定義屬性,可以獲取通過JS參加的自定義屬性
3, 無法獲取相對網(wǎng)址
oText[value]
注意:
1,可以訪問任何變量和參數(shù)
2,標(biāo)準(zhǔn)瀏覽器下無法訪問HTML中的自定義屬性,可以獲取通過JS參加的自定義屬性。
3,無法獲取相對網(wǎng)址,比如img.src獲取的是絕對路徑。
兩者區(qū)別:3, 通過DOM的方式
1, 中括號(hào)運(yùn)算符總是能代替點(diǎn)運(yùn)算符。但點(diǎn)運(yùn)算符卻不一定能全部代替中括號(hào)運(yùn)算符。
2, 中括號(hào)運(yùn)算符可以用字符串變量的內(nèi)容作為屬性名。點(diǎn)運(yùn)算符不能。obj["string"+variable]
3, 中括號(hào)運(yùn)算符可以用純數(shù)字為屬性名。點(diǎn)運(yùn)算符不能。
4, 中括號(hào)運(yùn)算符可以用js的關(guān)鍵字和保留字作為屬性名。點(diǎn)運(yùn)算符不能。
獲取屬性的值:getAttribute(屬性名) oText.getAttribute("value")
設(shè)置屬性的值:setAttribute(屬性名, 要設(shè)置的值) oText.setAttribute("value","hello")
刪除:removeAttribute(屬性名) oText.getAttribute("value")
Dom獲取屬性的優(yōu)勢:三, BFC
1,可以獲取html中自定義的屬性
2,獲取的是相對網(wǎng)址,不過 IE7以下還是絕對網(wǎng)址
3,IE下可以通過style訪問
//IE下可以這樣用:oText.style.getAttribute("width") 標(biāo)準(zhǔn)瀏覽器不可以
**這個(gè)知識(shí)點(diǎn)真的是沒怎么鬧明白,收藏了幾個(gè)寫的不錯(cuò)的文章,多看看多學(xué)學(xué)吧
BFC 塊格式化上下文(Block Formatting Context)。
W3C的定義:浮動(dòng)元素和絕對定位元素,非塊級(jí)盒子的塊級(jí)容器(例如inline-blocks,table-cells,和table-captions),以及overflow值不為“visiable”的塊級(jí)盒子,都會(huì)為他們的內(nèi)容創(chuàng)建新的BFC。
什么是BFC //寫的很通俗易懂
什么是BFC //寫的比較詳細(xì)系統(tǒng)
前端精選文摘:BFC 神奇背后的原理
1, 插件安裝
設(shè)置-->管理擴(kuò)展-->搜索Emmet安裝
2, 配置
文件-->首選項(xiàng)-->設(shè)置
代碼如下
{ "emmet.syntaxProfiles": { "vue-html": "html", "vue": "html" }, "emmet.triggerExpansionOnTab": true, "emmet.showSuggestionsAsSnippets": true, }五, display:flow-root
對于display的屬性,常見的有block、inline、inline-block、flex、grid、table和table-cell等。flow-root是display的新屬性值,常用于清除浮動(dòng)。
之前一般用的清除浮動(dòng)的方案是clear:both;overflow:hidden,父元素display:table等。
幾種常見的清除浮動(dòng)方法
優(yōu)勢對父元素的設(shè)置比較友好
清除浮動(dòng)案例:
.parentElement{ display: flow-root; }
使用的時(shí)候因?yàn)闉g覽器兼容性的原因,需要做一些處理。使用css的條件選擇屬性@supports()。
@supports的具體用法可以看 CSS3條件判斷 @supports
.floatElement{ float: left; /*或者right*/ } .parentElement::after { content:""; display: table; clear: both } @supports(display:flow-root){ .parentElement{ display: flow-root; } .parentElement::after{ content:none; } }
或者
.floatElement{ float: left; /*或者right*/ } @supports not (display:flow-root) { .parentElement::after { content: ""; display: table; clear:both; } }六, module.exports
遇到這個(gè)知識(shí)點(diǎn)是在自學(xué)webpack過程中還有看見同事將極驗(yàn)相關(guān)的操作抽出來放在一個(gè)服務(wù)里面,用到了module.exports,于是就去了解了一下。
極驗(yàn)教程:極驗(yàn)教程鏈接
開發(fā)中,可以將代碼拆分成多個(gè)腳本文件,并且讓它們相互調(diào)用。如何定義和使用模塊,這個(gè)步驟簡稱為模塊化。相當(dāng)于:HTML 中的 。module.exports就是提供模塊使用時(shí)候的接口。
var Demo = { name: "Demo", author: "xiaoyuan", sayName: function(name){ console.log(this.name); } } module.exports = Demo;
返回一個(gè)json object。這樣可以全局共享的變量或者方法。
調(diào)用方法:
var Demo= require("./Demo.js"); Demo.sayName("hello"); //hello
或者:
var func1 = function() { console.log("func1"); }; var func2 = function() { console.log("func2"); }; exports.function1 = func1;
調(diào)用方法:
var functions = require("./functions"); functions.function1(); functions.function2();
官方說明: 鏈接地址
發(fā)現(xiàn)在開發(fā)過程中(主要使用vue+ES6),幾乎很少用到module.exports。而使用module.exports達(dá)到的效果發(fā)現(xiàn)export也可以實(shí)現(xiàn)。于是去查了一下兩者的關(guān)系。發(fā)現(xiàn)了第七個(gè)知識(shí)點(diǎn)七, module.exports,exports,export, export default的區(qū)別
module.exports和exports遵循的是CommonJS模塊規(guī)范。export和export default遵循的是ES6模塊規(guī)范。CommonJS模塊規(guī)范和ES6模塊規(guī)范完全是兩種不同的概念,阮一峰大神有全面詳細(xì)的文檔講解。CommonJS模塊規(guī)范 、ES6模塊規(guī)范
每個(gè)模塊內(nèi)部,module變量代表當(dāng)前模塊,是一個(gè)變量對象,指向一塊內(nèi)存,它的exports屬性(即module.exports)是對外的接口。加載某個(gè)模塊,其實(shí)是加載該模塊的module.exports屬性。
exports:是一個(gè)變量對象,它不是module的引用,它是{}的引用,它指向module.exports的{}模塊
exports只能使用.語法向外暴露內(nèi)部變量。例:exports.xxx=xxx
module.exports既可以通過點(diǎn)語法,也可以直接賦值一個(gè)對象(module.exports.xxx=xxx。module.exports=xxx)
Node為每個(gè)模塊提供一個(gè)exports變量,指向module.exports。這等同在每個(gè)模塊頭部,有一行這樣的命令。
var exports = module.exports;
**添加一個(gè)知識(shí)點(diǎn),模塊module.exports與實(shí)例化 鏈接地址
default就是別名,默認(rèn)值的意思。所以export default向外暴露的成員,可以使用任意變量來接收,但是只能向外暴露一次。
//test.js var word = "hello world"; export default word; //testDemo.js import wordDemo from "./test.js"; export default { data(){ return {} }, methods: { test(){ console.log("testDemo"); } } }
export向外暴露的成員,使用{}來接收,可以定義多個(gè),需要使用哪一個(gè)的時(shí)候就引入哪一個(gè)。名字必須按照定義好的名字,實(shí)在不想用,可以用as來取別名。
//test.js export var wordOne = "hello world"; export var wordTwo = "hello"; export var wordThree = "hi"; //testDemo.js import {wordOne,wordThree as wordFour} from "./test.js"; export default { data(){ return {} }, methods: { test(){ console.log("testDemo"); } } }
export與export default可以同時(shí)使用
exports 和module.exports 必須后面跟=,export與export default不需要
發(fā)現(xiàn)module.exports一般配合require使用,export一般配合import使用,ps:一般沒有定死。于是去了解了一下require與import的區(qū)別八, require和import的區(qū)別
require和import的區(qū)別
九, vue中使用base64,md5和sha1base64:編碼方式,可以加密和解密。可逆加密。
md5:消息摘要算法, 不可逆加密。
sha1:安全哈希算法, 不可逆加密。
md5,sha1 是信息摘要,確保信息的唯一性。
安裝:
npm install js-base64 --save
npm install js-md5 --save
npm install js-sha1 --save
使用:
import md5 from "js-md5"; let Base64 = require("js-base64").Base64; import Sha1 from "js-sha1"; export default{ data(){ return { value: "xxxxx" } }, methods:{ encryptData(val){ let md5Value = md5(val); let shaVaule = Sha1(val); let base64Value = Base64.encode(val);//解密 Base64.decode(base64Value); } } }十, 圖片base64的使用
CSS中使用:background-image: url("data:image/png;base64,iVBORw0KGgo=...");
HTML中使用:
有點(diǎn):
無額外請求,沒有跨域問題,無需考慮緩存、文件頭或者cookies問題
缺點(diǎn):減少一個(gè)圖片的 HTTP 請求,但是css體積增大,影響渲染,可能會(huì)導(dǎo)致比較長時(shí)間的空白屏幕。
Content-Type是指http/https發(fā)送信息至服務(wù)器時(shí)的內(nèi)容編碼類型,contentType用于表明發(fā)送數(shù)據(jù)流的類型,服務(wù)器根據(jù)編碼類型使用特定的解析方式,獲取數(shù)據(jù)流中的數(shù)據(jù)。
一般常用的有這樣幾種:application/x-www-form-urlencoded、multipart/form-data、application/json、text/plain
具體格式可以看下面的博客 POST提交數(shù)據(jù)之---Content-Type的理解
注:先了解一下js的正則表達(dá)式語法 RegExp 參考手冊
//判斷手機(jī)號(hào) export function isMobile(val){ return /^(((13[0-9]{1})|(14[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+d{8})$/.test(val); }
//判斷郵箱 export function isEmail(val){ return /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/.test(val); }
//判斷是否為郵箱或者手機(jī)號(hào) export function isMobileOrEmail(val){ return /^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/.test(val)||/^(((13[0-9]{1})|(14[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+d{8})$/.test(val); }
//數(shù)字 export function isNumber(val){ return /^[0-9]*$/.test(val); }
//校驗(yàn)是否為純數(shù)字 js的isNaN函數(shù)
export let checkNum = (val) => {
if(isNaN(val)){ return false; } return true;
}
//校驗(yàn)是否為純數(shù)字(正則)
export let checkNum1 = (val) => {
return /^[0-9]+.?[0-9]*$/.test(val);
}
//匹配:0-9出現(xiàn)一次或多次,·出現(xiàn)零次或一次,0-9出現(xiàn)零次或多次。/^[0-9]+.?[0-9]*$/這樣寫法,012.23也是匹配的
//由字母、數(shù)字組合 export function isCombination(val){ return /^(([a-z]+[0-9]+)|([0-9]+[a-z]+))[a-z0-9]*$/i.test(val); }
//判斷身份證 export function isIdCard(idCard){ var vcity={ 11:"北京",12:"天津",13:"河北",14:"山西",15:"內(nèi)蒙古", 21:"遼寧",22:"吉林",23:"黑龍江",31:"上海",32:"江蘇", 33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山東",41:"河南", 42:"湖北",43:"湖南",44:"廣東",45:"廣西",46:"海南",50:"重慶", 51:"四川",52:"貴州",53:"云南",54:"西藏",61:"陜西",62:"甘肅", 63:"青海",64:"寧夏",65:"新疆",71:"臺(tái)灣",81:"香港",82:"澳門",91:"國外" }; idCard = idCard.toUpperCase(); if(!(/(^d{15}$)|(^d{17}([0-9]|X)$)/.test(idCard))) { return false; } var province = idCard.substr(0,2); if(vcity[province] == undefined) { return false; } var len = idCard.length,re; if(len == 15){ re = new RegExp(/^(d{6})(d{2})(d{2})(d{2})(d{3})$/); var arrSplit = idCard.match(re); var dtmBirth = new Date("19" + arrSplit[2] + "/" + arrSplit[3] + "/"+ arrSplit[4]); var bGoodDay; bGoodDay = (dtmBirth.getFullYear()== Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); if (!bGoodDay) { return false; } else { var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5,8, 4, 2); var arrCh = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4","3", "2"); var nTemp = 0, i; idCard = idCard.substr(0, 6) + "19" + idCard.substr(6, idCard.length - 6); for (i = 0; i < 17; i++) { nTemp += idCard.substr(i, 1) * arrInt[i]; } idCard += arrCh[nTemp % 11]; return true; } } if(len == 18){ re = new RegExp(/^(d{6})(d{4})(d{2})(d{2})(d{3})([0-9]|X)$/); var arrSplit = idCard.match(re); var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/"+ arrSplit[4]); var bGoodDay; bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); if (!bGoodDay) { return false; } else { var valnum; var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5,8, 4, 2); var arrCh = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4","3", "2"); var nTemp = 0, i; for (i = 0; i < 17; i++) { nTemp += idCard.substr(i, 1) * arrInt[i]; } valnum = arrCh[nTemp % 11]; if (valnum != idCard.substr(17, 1)) { return false; } return true; } } }
//只能是英文字母 export let isLetter = (val) => { return /^[a-zA-Z]*$/.test(val); }
//只能是漢字 export let isChinese = (val) => { return /^[u0391-uFFE5]+$/.test(val); }
//只能是數(shù)字 export let isNumber = (val) => { return /^[0-9]+$/.test(val); }
//獲取字符串的真實(shí)長度(包含漢字) export function stringLength(val){ //定義字符串的長度和字符串相應(yīng)位置字符的編碼值 var len = 0, code = 0; for(var i = 0; i < val.length; i++){ code = test.charCodeAt(i); if(code >= 0 && code<=127){ len += 1; }else{ len += 2; } } return len; }
//8-16位,不能是純字母、數(shù)字、不能有特殊字符 export let isPasswordRational = (val) => { return /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/.test(val); }
//驗(yàn)證座機(jī)號(hào) export let checkTel = (val) => { return /^((d{3,4})|d{3,4}-)?d{7,8}$/.test(val); }
//校驗(yàn)ip export let checkIp = (val) => { var reSpaceCheck = /^(d+).(d+).(d+).(d+)$/; if(reSpaceCheck.test(val)){ val.match(reSpaceCheck); //RegExp.$1是RegExp的一個(gè)屬性,指的是與正則表達(dá)式匹配的第一個(gè) 子匹配(以括號(hào)為標(biāo)志)字符串 if(RegExp.$1 <= 255 && RegExp.$1 >= 0 && RegExp.$2 <= 255 && RegExp.$2 >=0 &&RegExp.$3 <= 255 && RegExp.$3 >= 0 && RegExp.$4 <= 255 && RegExp.$4>=0){ return true; }else{ return false; } }else{ return false; } }
//檢驗(yàn)url地址 export let checkUrl = (val) => { return /(http|ftp|https)://[w-_]+(.[w-_]+)+([w-.,@?^=%&:/~+#]*[w-@?^=%&/~+#])?/.test(val); }
//檢驗(yàn)日期 格式為YYYY-MM-DD export let checkDate = (val) => { var result = val.match(/((^((1[8-9]d{2})|([2-9]d{3}))(-)(10|12|0?[13578])(-)(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]d{2})|([2-9]d{3}))(-)(11|0?[469])(-)(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]d{2})|([2-9]d{3}))(-)(0?2)(-)(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)(-)(0?2)(-)(29)$)|(^([3579][26]00)(-)(0?2)(-)(29)$)|(^([1][89][0][48])(-)(0?2)(-)(29)$)|(^([2-9][0-9][0][48])(-)(0?2)(-)(29)$)|(^([1][89][2468][048])(-)(0?2)(-)(29)$)|(^([2-9][0-9][2468][048])(-)(0?2)(-)(29)$)|(^([1][89][13579][26])(-)(0?2)(-)(29)$)|(^([2-9][0-9][13579][26])(-)(0?2)(-)(29)$))/); if (result == null) { return false; } return true; }
//檢驗(yàn)金額 export let checkMoney = (money) => { if (money == "") { return false; } money = money.replace(/(^s*)|(s*$)/g, ""); //去除目標(biāo)字符串左右兩邊的空白字符^是開始s是空白 *表示0個(gè)或多個(gè)|是或者$是結(jié)尾g表示全局 var reg = /^[0-9]*.?[0-9]{0,2}$/; if (!checkNum(money)) { return false; } if (money.length > 3) { if (money.substr(0, 1) == "0") { if (money.substr(3, money.length).length > 2) { return false; } } } if(!reg.test(money)){ return false; } return true; }
//銀行卡號(hào) export let isBankCard = (val) => { val = val.replace(/s+/g, ""); //去掉空格 return /^([1-9]{1})(d{14}|d{18})$/.test(val); }
//統(tǒng)一社會(huì)信用代碼 export let isSocialCreditCode = (val) => { return /[^_IOZSVa-zW]{2}d{6}[^_IOZSVa-zW]{10}/g.test(val); }
//組織機(jī)構(gòu)代碼(企業(yè)) export let isOrganizationCode = (val) => { return /[a-zA-Z0-9]{8}-[a-zA-Z0-9]/.test(val); }
//營業(yè)執(zhí)照注冊號(hào) export let isBusinessLicense = (val) => { return /(^(?:(?![IOZSV])[dA-Z]){2}d{6}(?:(?![IOZSV])[dA-Z]){10}$)|(^d{15}$)/.test(val); }
//判斷是否是英語或者特殊字符。其實(shí)就是排除數(shù)字 export function removeNumber(rule, value, callback) { const reg = /[^D]/g if(!reg.test(value)){ callback() }else{ callback(new Error("只能是英語或者特殊字符")); } }
發(fā)現(xiàn)的校驗(yàn)比較全的網(wǎng)站鏈接地址 鏈接地址
注:判斷長度的時(shí)候,英文字母和中文漢字占的字節(jié)數(shù)不同。一般來說英文是1個(gè),中文是兩個(gè)。
一般來說英文是1個(gè),中文是兩個(gè)。但是會(huì)根據(jù)編碼方式不同而不同。以下是搬運(yùn):
英文字母和中文漢字在不同字符集編碼下的字節(jié)數(shù)
英文字母:
字節(jié)數(shù) : 1;編碼:GB2312
字節(jié)數(shù) : 1;編碼:GBK
字節(jié)數(shù) : 1;編碼:GB18030
字節(jié)數(shù) : 1;編碼:ISO-8859-1
字節(jié)數(shù) : 1;編碼:UTF-8
字節(jié)數(shù) : 4;編碼:UTF-16
字節(jié)數(shù) : 2;編碼:UTF-16BE
字節(jié)數(shù) : 2;編碼:UTF-16LE
中文漢字:
字節(jié)數(shù) : 2;編碼:GB2312
字節(jié)數(shù) : 2;編碼:GBK
字節(jié)數(shù) : 2;編碼:GB18030
字節(jié)數(shù) : 1;編碼:ISO-8859-1
字節(jié)數(shù) : 3;編碼:UTF-8
字節(jié)數(shù) : 4;編碼:UTF-16
字節(jié)數(shù) : 2;編碼:UTF-16BE
字節(jié)數(shù) : 2;編碼:UTF-16LE
JS判斷字符串長度
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/104267.html
摘要:注本文章是在工作過程中所接觸的知識(shí)點(diǎn)的整理,涉及的東西比價(jià)雜亂,如有錯(cuò)誤之處,歡迎糾錯(cuò)與指導(dǎo) *注:本文章是在工作過程中所接觸的知識(shí)點(diǎn)的整理,涉及的東西比價(jià)雜亂,如有錯(cuò)誤之處,歡迎糾錯(cuò)與指導(dǎo)
摘要:注本文章是在工作過程中所接觸的知識(shí)點(diǎn)的整理,涉及的東西比價(jià)雜亂,如有錯(cuò)誤之處,歡迎糾錯(cuò)與指導(dǎo) *注:本文章是在工作過程中所接觸的知識(shí)點(diǎn)的整理,涉及的東西比價(jià)雜亂,如有錯(cuò)誤之處,歡迎糾錯(cuò)與指導(dǎo)
摘要:注本文章是在工作過程中所接觸的知識(shí)點(diǎn)的整理,涉及的東西比價(jià)雜亂,如有錯(cuò)誤之處,歡迎糾錯(cuò)與指導(dǎo)一,自定義背景顏色,按鈕顏色和文字的處理二,對象 *注:本文章是在工作過程中所接觸的知識(shí)點(diǎn)的整理,涉及的東西比價(jià)雜亂,如有錯(cuò)誤之處,歡迎糾錯(cuò)與指導(dǎo) 一, 自定義背景顏色,按鈕顏色和文字的處理 二, Arguments 對象
摘要:注本文章是在工作過程中所接觸的知識(shí)點(diǎn)的整理,涉及的東西比價(jià)雜亂,如有錯(cuò)誤之處,歡迎糾錯(cuò)與指導(dǎo)一,的使用二,布局三,開發(fā)環(huán)境測試環(huán)境生產(chǎn)環(huán)境的了解四,與與五,對于已經(jīng)學(xué)好的頁面,如何快速的改成自適應(yīng)頁面六,開發(fā)者工具的使用七,的和八,的 *注:本文章是在工作過程中所接觸的知識(shí)點(diǎn)的整理,涉及的東西比價(jià)雜亂,如有錯(cuò)誤之處,歡迎糾錯(cuò)與指導(dǎo) 一, iframe的使用 二, flex布局 三, 開...
摘要:注本文章是在工作過程中所接觸的知識(shí)點(diǎn)的整理,涉及的東西比價(jià)雜亂,如有錯(cuò)誤之處,歡迎糾錯(cuò)與指導(dǎo)一,前端項(xiàng)目性能優(yōu)化二,數(shù)據(jù)頁面刷新丟失問題三,模式鉤子四,五,刪除元素所有子節(jié)點(diǎn)六,調(diào)試器安裝七,項(xiàng)目打包部署到八,布局總結(jié)實(shí)現(xiàn),頭部高 *注:本文章是在工作過程中所接觸的知識(shí)點(diǎn)的整理,涉及的東西比價(jià)雜亂,如有錯(cuò)誤之處,歡迎糾錯(cuò)與指導(dǎo) 一, 前端項(xiàng)目性能優(yōu)化 二, Vuex數(shù)據(jù)頁面刷新丟失問題...
摘要:注本文章是在工作過程中所接觸的知識(shí)點(diǎn)的整理,涉及的東西比價(jià)雜亂,如有錯(cuò)誤之處,歡迎糾錯(cuò)與指導(dǎo)一,之模塊化二,組件化設(shè)計(jì)與開發(fā)三,打包并將文件加載到指定的位置四,五,編寫模塊化 *注:本文章是在工作過程中所接觸的知識(shí)點(diǎn)的整理,涉及的東西比價(jià)雜亂,如有錯(cuò)誤之處,歡迎糾錯(cuò)與指導(dǎo) 一, webpack之css模塊化 二, 組件化設(shè)計(jì)與開發(fā) 三, webpack打包并將文件加載到指定的位置 四,...
閱讀 2741·2021-11-24 09:39
閱讀 1650·2021-09-28 09:35
閱讀 1123·2021-09-06 15:02
閱讀 1315·2021-07-25 21:37
閱讀 2731·2019-08-30 15:53
閱讀 3648·2019-08-30 14:07
閱讀 718·2019-08-30 11:07
閱讀 3518·2019-08-29 18:36