的時候,自己總結了幾個代碼段,在開發中也經常使用,謝謝。
let jsonData={
id: 1,
status: "OK",
data: ['a', 'b']
};
let { id, status, data: number }=jsonData;
console.log(id, status, number ); // 1,“OK”,[a, b]
`
let a1=[1,2];
let a2=[3,4];
console.log([...a1,...a2]) // [1,2,3,4]
let arr=[1,2,2,3];
console.log([... new Set(arr)]) // [1,2,3]
let name="maomin";
let obj={
name:'xqm',
say:function(year,place){
console.log(this.name+' is '+year+' born from '+place);
}
};
let say=obj.say;
setTimeout(function(){
say.apply(obj,['1996','China']);
},0)
let a=10;
let b=20;
[a,b]=[b,a];
let [a,b,c]=[1,2,3];
console.log(Math.max(...[14, 3, 77, 30])); //77
`const list=[1,2,3,4,5];
const newList=list.map(item=>console.log(item*item)) // 1 4 9 16 25
let x='我是x';
let y='我是y';
console.log(`${x} + ${y}`) // 我是x + 我是y
「原理:」 在事件被觸發n秒后再執行回調,如果在這n秒內又被觸發,則重新計時。「適用場景:」
「代碼:」
// 防抖
const debounce=(fn,delay)=>{
let timer=null;
return (...args)=>{
clearTimeout(timer);
timer=setTimeout(()=>{
fn.apply(this,args)
},delay)
}
}
「實例:」
<body>
<input type="text" class="int" onkeydown="down()">
</body>
<script> function down() {
debounce(()=> {
console.log('1')
}, 2000)()
}
const debounce=(fn, delay)=> {
let timer=null;
return (...args)=> {
clearTimeout(timer);
timer=setTimeout(()=> {
fn.apply(this, args)
}, delay)
}
}</script>
「原理:」 規定在一單位時間內。只能觸發一次函數。如果這個單位時間內觸發多次函數,只有一次生效。「適用場景:」
「代碼:」
// 節流函數
const throttle=(fn, delay=500)=> {
let flag=true;
return (...args)=> {
if (!flag) return;
flag=false;
setTimeout(()=> {
fn.apply(this, args)
}, delay);
}
}
「實例:」
// 節流函數
const throttle=(fn, delay=500)=> {
let flag=true;
return (...args)=> {
if (!flag) return;
flag=false;
setTimeout(()=> {
fn.apply(this, args)
}, delay);
}
}
// 瀏覽器窗口縮放
window.onresize=function(){
throttle(()=>{
console.log(1)
})()
}
// let url=document.location.toString();
let url='https://www.maomin.club/?user=maomin&nn=1111';
function GetUrlParam(url){
let arrObj=url.split("?");
let params=Object.create(null)
if (arrObj.length > 1){
arrObj=arrObj[1].split("&");
arrObj.forEach(item=>{
item=item.split("=");
params[item[0]]=item[1]
})
}
return params;
}
console.log(GetUrlParam(url)) // {user: "maomin", nn: "1111"}
修飾符可以同時使用多個,但是可能會因為順序而有所不同。用v-on:click.prevent.self會阻止所有的點擊,而 v-on:click.self.prevent只會阻止對元素自身的點擊。也就是從「左往右判斷」。
「1、.lazy」
<div>
<input type="text" v-model.lazy="value">
<p>{{value}}</p>
</div>
只有當我們光標離開輸入框的時候,它才會更新視圖,相當于在onchange事件觸發更新。
「2、.trim」
<input type="text" v-model.trim="value">
過濾一下一些輸入完密碼不小心多敲了一下空格的兄弟輸入的內容。需要注意的是,它只能過濾首尾的空格!首尾,中間的是不會過濾的。
「3、.number」
<input type="text" v-model.number="value">
如果你先輸入數字,那它就會限制你輸入的只能是數字。如果你先輸入字符串,那它就相當于沒有加.number。
「4、.stop」
<!-- 只打印1 -->
<div @click="shout(2)">
<button @click.stop="shout(1)">ok</button>
</div>
由于事件冒泡的機制,我們給元素綁定點擊事件的時候,也會觸發父級的點擊事件。一鍵阻止事件冒泡,簡直方便得不行。相當于調用了event.stopPropagation()方法。「5、.prevent」
<!-- 提交事件不再重載頁面 -->
<form v-on:submit.prevent="onSubmit"></form>
用于阻止事件的默認行為,例如,當點擊提交按鈕時阻止對表單的提交。相當于調用了event.preventDefault()方法。
「6、.self」
<div class="blue" @click.self="shout(2)">
<button @click="shout(1)">ok</button>
</div>
只當事件是從事件綁定的元素本身觸發時才觸發回調。
「7、.once」
<!-- 只能shout一次 -->
<button @click.once="shout(1)">ok</button>
綁定了事件以后只能觸發一次,第二次就不會觸發。
「8、.capture」
<!-- 打印順序 1 2 4 3 -->
<div @click.capture="shout(1)">
obj1
<div @click.capture="shout(2)">
obj2
<div @click="shout(3)">
obj3
<div @click="shout(4)">
obj4
</div>
</div>
</div>
</div>
1和2為事件捕獲,從外向內,4和3為事件冒泡,從內向外。事件觸發從包含這個元素的頂層開始往下觸發,也就是事件捕獲。
「9、.passive」
<div v-on:scroll.passive="onScroll">...</div>
監聽元素滾動事件的時候,會一直觸發onscroll事件,會讓我們的網頁變卡,因此我們使用這個修飾符的時候,相當于給onscroll事件整了一個.lazy修飾符。
「10、.native」
<My-component @click.native="shout(3)"></My-component>
自定義組件必須使用.native來修飾這個click事件(即),可以理解為該修飾符的作用就是把一個vue組件轉化為一個普通的HTML標簽 注意:使用.native修飾符來操作普通HTML標簽是會令事件失效的。
<button @click.right="shout(1)">ok</button>
「11、.keyCode」
注意:這里的.keyCode代表鍵值
<input type="text" @keyup.keyCode="shout(4)">
指定按下某一個鍵才觸發這個shout的時候,這個修飾符就有用了。keyCode碼如下:
keyCode | 按鍵 |
48-57 | 0-9 |
65-90 | a-z/A-Z |
112-135 | F1-F24 |
8 | BackSpace(退格) |
9 | Tab |
13 | Enter(回車) |
20 | Caps_Lock(大寫鎖定) |
32 | Space(空格鍵) |
37 | Left(左箭頭) |
38 | Up(上箭頭) |
39 | Right(右箭頭) |
40 | Down(下箭頭) |
vue給一些常用的鍵提供了別名:
//普通鍵
.enter
.tab
.delete //(捕獲“刪除”和“退格”鍵)
.space
.esc
.up
.down
.left
.right
//系統修飾鍵
.ctrl
.alt
.meta
.shift
全局 config.keyCodes 對象自定義按鍵修飾符別名:
// 可以使用 `v-on:keyup.f1`
Vue.config.keyCodes.f1=112
<input type="text" @keyup.ctrl.67="shout(4)">
將系統修飾鍵和其他鍵碼鏈接起來使用,這樣當我們同時按下ctrl+c時,就會觸發keyup事件。
「12、.exact」
有些場景我們只需要或者只能按一個系統修飾鍵來觸發。注意:「這個只是限制系統修飾鍵的。」
<button type="text" @click.ctrl.exact="shout(4)">ok</button>
可以按下「ctrl+普通鍵」 來觸發,但是不能按下「ctrl + 系統修飾鍵 +普通鍵」來觸發。
「13、.sync」
更方便的使用prop進行“雙向綁定”。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style> #app {
margin: 10px auto;
width: 200px;
height: 200px;
}
input {
width: 200px;
height: 30px;
border: 1px solid red;
outline: none;
}
.show {
width: 200px;
height: 200px;
background: orange;
border: 1px solid red;
border-top: none;
} </style>
<script src="https://unpkg.com/vue@2.6.11/dist/vue.js"></script>
</head>
<body>
<div id="app">
<costum-show :is-show1.sync="isShow"></costum-show>
<div class="show" v-show="isShow"></div>
</div>
<script> Vue.component('costum-show', {
props: ['isShow'],
template: `
<div>
<input type="text" val="" @click="showHandle">
</div>
`,
methods: {
showHandle() {
this.$emit("update:is-show1", !this.isShow);
}
}
})
var vm=new Vue({
el: '#app',
data: {
isShow: false
}
}) </script>
</body>
</html>
1、使用.sync的時候,子組件傳遞的事件名必須為update:value,其中value與父組件綁定屬性的值必須一致(如上例中的is-show1) 2、注意帶有.sync修飾符的 v-bind不能和表達式一起使用 (例如v-bind:title.sync='yy=0?1:0' 是無效的)。取而代之的是,你只能提供你想要綁定的屬性名,類似v-model。3、將 v-bind.sync用在一個字面量的對象上,例如v-bind.sync=”{ title: doc.title }”,是無法正常工作的,因為在解析一個像這樣的復雜表達式的時候,有很多邊緣情況需要考慮。
「14、.prop」
<input id="uid" title="title1" value="1" :index.prop="index">
「15、.camel」
<svg :viewBox="viewBox"></svg>
實際上會渲染為
`<svg :viewbox="viewBox"></svg>`
SVG標簽只認 viewBox,卻不知道 viewbox 是什么?.camel修飾符,那它就會被渲染為駝峰名。使用字符串模版,則沒有這些限制。
使用Array的find()可以實現快速查找。
const pets=[
{type:'Dog',name:'Max'},
{type:'Cat',name:'Karl'},
{type:'Dog',name:'Tommy'}
]
let pet=pets.find(pet=>pet.type==='Dog'&&pet.name==='Tommy');
console.log(pet);// {type: "Dog", name: "Tommy"}
console.log(Math.floor(4.9)) //4
console.log(~~4.9);// 4
近許多小伙伴都在咨詢微信打印如何設置,明明按照步驟操作了卻用不了,那么接下來,小編就給大家詳細的介紹下,微信打印設置的步驟和一些常見問題的解決方法,一起學習吧。
?
01
Tank 系列微信打印設置操作步驟
打印機激活
以HP Smart Tank510系列為例,新裝打印機處于未激活模式,首先連接上打印機網絡。
打開HP Smart,添加設置新打印機,將打印機加入網絡,并等待連接完成。
連接網絡完成之后,HP Smart添加打印機成功表明激活完成。
激活微信云打印
確保打印機已連接到無線網絡,打開HP Smart,點擊打印機圖標,進入打印機設置頁面,點擊“高級設置”進入打印機EWS界面。
點擊打印機
高級設置
EWS
開啟web服務,打開web服務選項,點擊設置,進行開啟。
打印信息頁,等待二維碼打印完成。
文件打印
打開微信掃一掃,選擇綁定打印機。
綁定完成之后,選擇文件打印,從聊天記錄中選擇,選擇文件點擊打印即可。
觸摸屏激活方法
無線連接,點擊無線信號圖標-“設置”-“無線設置向導”進行網絡連接。
在打印機屏幕找到web服務,然后點擊圖標,等待加載完成,點擊“打印”即可打印出二維碼。
02
2600/2700系列微信打印設置
無線激活
連接打印機網絡,打開瀏覽器,輸入IP地址進入打印機EWS后臺。
點擊“網絡”-“無線”-“無線設置向導”進行網絡連接,并輸入PIN碼以訪問安全設置。
連接網絡
輸入PIN碼
PIN碼
選擇無線網絡進行連接,完成激活操作。
打印微信二維碼
點擊打印機圖標,進入設置界面,選擇高級設置進入EWS后臺。
點擊打印機
設置界面
EWS
選擇WEB服務,點擊打印信息頁,輸入打印機Pin碼進行安全驗證,然后點擊“打印信息頁”。
然后點擊“打印信息頁”等待打印完成。
文件打印
打開微信,掃一掃云打印二維碼,選擇綁定打印機。
選擇文件打印,從聊天記錄中選擇,點擊打印,等待打印完成。
雖然知道了如何來進行激活微信云打印,但是在設置的過程中總會遇到一些各種各樣的問題導致操作失敗,下面來總結幾種比較常見的問題供大家參考。
打印機響應速度慢
決定打印機響應速度的因素主要是由文件大小、網絡傳輸速度、服務器處理速度、打印機處理速度這幾個因素決定的。
文件大小:文件越大,文件傳傳輸服務器的速度越慢,建議文件大小控制在10M左右。
網絡傳輸速度:直接關系著文件傳輸的快慢,建議將發送文件方和接收文件的打印機放置于良好的網絡環境下。
服務器處理速度:微信打印時會先將發送方的文件接收至服務器處理,完成后再講文件發送到打印機,如果服務器接收的文件太多,有時候會出現延遲或者速度變慢的現象,建議稍等片刻再使用微信打印。
打印機處理速度:打印機內存數據過多,造成打印機在處理打印任務時出現緩慢的現象。使用惠普連供打印機和家用噴墨打印機時,可以將打印機關機等待5-10分鐘即可。
打印不出二維碼
當二維碼丟失想重新綁定打印機,按照正常步驟操作還打印不出二維碼。建議重啟路由或更換網絡,恢復網絡或出廠設置,重新操作。
檢查是否網絡有問題,重啟路由器,或者更換網絡環境(4g熱點)進行打印操作。
恢復網絡默認設置,或者出廠設置。
連接上打印機網絡進入ews后臺
打開設置選項,選擇還原默認設置,進行網絡還原或恢復出廠設置。
開啟Web服務失敗
新買回來的打印機在激活微信打印,開啟Web服務時經常會遇到開啟失敗的問題,一般是由于以下幾個原因導致的。
網絡連接正常但是就會出現開啟web服務失敗的問題,建議打印出信息頁,檢查打印機是否在HP Connected上進行注冊。如未注冊,請登錄www.hpconnected.com創建賬戶并注冊打印機。
在開啟Web服務時經常會碰到另一個人正在注冊請稍后重試。是由于在開啟Web服務時未成功,打印機未連接到服務器且更新不及時,導致第二次嘗試會有此提示,出現這種情況建議刪除WEB服務設置重新開啟,或者將打印機重啟等待5-10分鐘在進行嘗試。
刪除WEB服務重新開啟,手機連接上打印機網絡,進入打印機EWS后臺。
點擊WEB服務,選擇WEB服務設置-刪除WEB服務,重新開啟即可。
在開啟web服務器發生網絡問題時,打印網絡測試頁檢查網絡情況。
?檢查網絡情況,檢查打印機無線鍵是否為常亮的狀態,將打印機重新連接到無線網絡上。
?重啟路由器。
?更換網絡進行嘗試。
民新舉措!
贛州中心城區
維修資金電子票據系統正式上線!
據悉,自2020年6月8日起,贛州市中心城區維修資金電子票據系統正式上線。今后,廣大業主朋友們可以以通過微信、支付寶、贛服通、贛州通等掃一掃,體驗到更加便捷的維修資金手機交存:業主交存維修資金后系統會自動發送信息給業主,自動推送維修資金電子票據,真正實現“足不出戶”辦理維修資金交存業務!
電子票是什么樣子的呢?
一起來看看~
如何查詢電子票據?
原來的紙制票據需要換成電子票據嗎?
……
關于電子票據
你是否有很多疑問?
小編幫你解答!
1 如何查詢電子票據?
一、通過住建局信息平臺
http://218.64.195.220:333/,輸入用戶名、密碼,登錄后可以完善個人信息、修改密碼,以及查看電子票據,也可下載及打印電子票據。
二、通過江西省非稅收入收繳門戶網站
http://59.55.120.163:7018/billcheck/html/index.html,登錄后,輸入“票據代碼、電子票據號碼及校驗碼”,可查看電子票據,也可下載及打印電子票據。
三、微信搜索查詢“電子票夾”小程序,點擊“手工查票”,輸入“票據代碼、電子票據號碼及校驗碼”,點擊“查找電子票”,即可查看電子票據,也可“保存至票夾”儲存。
2 原來的紙制票據需要換成電子票據嗎?
2020年6月8日前已交存維修資金的業主,已開具紙質的住宅專項維修資金專用收據,無需更換成電子票據,保存好紙質票據即可。
3 如何使用手機進行維修資金快捷交存呢?
自2019年2月15起,贛州市中心城區交存維修資金正式開通手機快捷交存,廣大業主朋友們可以通過手機辦理維修資金交存業務以及個人賬戶查詢。
簡而言之,辦理快捷交存有兩種類型:
一、2019年2月15日后通過系統打印《贛州市商品房買賣合同》的,合同封面就會有對應該合同維修資金交存的唯一二維碼,直接掃一掃即可交存;
二、2019年2月15日前已打印《贛州市商品房買賣合同》但未交維修資金的業主,因合同封面沒有維修資金交存二維碼,則需掃描固定二維碼(見下圖)。
具體流程如下:
1.用微信或支付寶掃描《贛州市商品房買賣合同》封面上的二維碼“掃碼交存維修資金”;或者掃一掃固定二維碼,輸入合同編號、業主姓名、身份證號;
2.核對合同信息,點擊【確認無誤,交存】;
3.核對交存信息,填寫業主【聯系電話】;
4.附件上傳或拍照身份證件正、反面,點擊【獲取驗證碼】,并輸入;
5.完成后點擊【立即支付】,彈出付款界面,完成支付;
6.交存完成后,您將收到短信,告知您的用戶名及密碼。您可通過住建局信息平臺(http://218.64.195.220:333/),輸入收到的用戶名和密碼,登錄系統完善個人信息、修改密碼,以及查看電子票據,也可下載及打印電子票據。
這下都明白了吧!轉發擴散,讓更多人知道!
來源:贛州市住房和城鄉建設局、客家新聞網
見習編輯:李曦
編審:謝東宸
★一天169人被罰!贛州正在嚴查!還有兩個重要提醒…
★對不起,我要回贛州了!
★接力對口支援!贛州又空降了40名“老俵”!
★贛州未來大可期!中國科學院稀土研究院已開始招生!
★贛州曝光3宗土地礦產資源違法違規典型案例
★酷夏難耐!贛州這些室內打卡地真是令人把持不住!
★贛州家長請留意,事關你家孩子每天乘坐的校車!
★重大調整!今年不將占道經營、流動商販列為文明城市測評考核內容
★全國人大代表、贛州市委副書記、市長曾文明接受新華網專訪
★贛州市人大常委會委員譚學忠接受審查調查
*請認真填寫需求信息,我們會在24小時內與您取得聯系。