官網(wǎng)是這樣說(shuō)的:
現(xiàn)在想象,我們正在 debug 一個(gè) app 并且觀察 devtool 中的 mutation 日志。每一條 mutation 被記錄,devtools 都需要捕捉到前一狀態(tài)和后一狀態(tài)的快照。然而,在上面的例子中 mutation 中的異步函數(shù)中的回調(diào)讓這不可能完成:因?yàn)楫?dāng) mutation 觸發(fā)的時(shí)候,回調(diào)函數(shù)還沒(méi)有被調(diào)用,devtools 不知道什么時(shí)候回調(diào)函數(shù)實(shí)際上被調(diào)用——實(shí)質(zhì)上任何在回調(diào)函數(shù)中進(jìn)行的狀態(tài)的改變都是不可追蹤的。
官方文檔說(shuō)異步修改狀態(tài)不會(huì)生效 (在哪里看到的 ???)
在上面的例子中 mutation 中的異步函數(shù)中的回調(diào)讓這不可能完成,什么不可能完成?
每一條 mutation 被記錄,devtools 都需要捕捉到前一狀態(tài)和后一狀態(tài)的快照。
就是說(shuō)用了 異步回調(diào)函數(shù) 操作 數(shù)據(jù), 數(shù)據(jù)的狀態(tài) 改變 是 不可 追蹤的。
而并不是 你理解的 修改狀態(tài)不會(huì)生效
且 官網(wǎng)中 有如下 解釋
在 mutation 中混合異步調(diào)用會(huì)導(dǎo)致你的程序很難調(diào)試。例如,當(dāng)你調(diào)用了兩個(gè)包含異步回調(diào)的 mutation 來(lái)改變狀態(tài),你怎么知道什么時(shí)候回調(diào)和哪個(gè)先回調(diào)呢?這就是為什么我們要區(qū)分這兩個(gè)概念。在 Vuex 中,mutation 都是同步事務(wù):
PS
上文的 devtools 是 vue 的瀏覽器調(diào)試 插件
對(duì)vue調(diào)試很有用
The gdbm module has been renamed to dbm.gnu in Python 3. The 2to3 tool will automatically adapt imports when converting your sources to Python 3.
gdbm 模塊在Python3中已重命名為 dbm.gnu。在將源代碼轉(zhuǎn)換為 Python 3 時(shí), 2to3 工具將自動(dòng)調(diào)整導(dǎo)入。
參見(jiàn):
需要好好了解一下vue的生命周期鉤子函數(shù)去
mounted 元素掛載之后立即執(zhí)行
export default{
mounted(){
this.A()
},
methods:{
A(){}
}
}打印機(jī)出單本來(lái)就是后臺(tái)系統(tǒng)的事情,跟 app還是pc瀏覽器還是手機(jī)瀏覽器 根本沒(méi)有關(guān)系啊。
你要說(shuō)php,那可能你后臺(tái)系統(tǒng)真是php寫(xiě)的,lpr調(diào)用打印機(jī)打印就行了。
怎么把后臺(tái)的數(shù)據(jù)弄成可打印的文件,你找個(gè)pdf庫(kù)什么的,弄個(gè)模板每次填數(shù)生成新文檔就可以了。
JSON.parse所編譯的json數(shù)據(jù)格式錯(cuò)誤,可以查看下,具體數(shù)據(jù)是什么樣的
<transition> 只會(huì)把過(guò)渡效果應(yīng)用到其包裹的內(nèi)容,你是不是這樣寫(xiě)的?
<transition>
<router-view></router-view>
</transition>
如果是這樣的話,只會(huì)在url改變的時(shí)候才會(huì)生效。
你可以這樣:官方文檔transition
<transition-group tag="ul" name="slide">
<li v-for="item in items" :key="item.id">
{{ item.text }}
</li>
</transition-group>MDN上的一句話:
從Firefox 4、 Chrome 51、Opera 38 和Safari 9.1開(kāi)始,通用確認(rèn)信息代替事件返回的字符串。比如,火狐上會(huì)顯示“本頁(yè)面要求您確認(rèn)您要離開(kāi) - 您輸入的數(shù)據(jù)可能不會(huì)被保存”
圖片蒙版
-webkit-mask-image: url(../img/test.png);
-webkit-mask-position: 50%;
-webkit-mask-size: 3.6rem 4rem;你這個(gè)問(wèn)題,估計(jì)別人懶得回答。你只有一個(gè)狀態(tài),當(dāng)然不能對(duì)循環(huán)反應(yīng)了。
是多了個(gè)滾動(dòng)條吧
不知道樓主解決了沒(méi)有,這里分享下,我的解決方案(已經(jīng)解決了)。使用了 vue-awesome-swiper(內(nèi)置的 swiper 用的版本是4.x)。
在 loop 開(kāi)啟的時(shí)候,dom 綁定事件是有問(wèn)題的。因?yàn)樵趌oop模式下slides前后會(huì)復(fù)制若干個(gè)slide,從而形成一個(gè)環(huán)路,但是卻不會(huì)復(fù)制綁定在dom上的click事件。
因此只能使用 swiper 提供的 api 方法進(jìn)行解決。
在 swiperOption 里,定義一個(gè) click 事件,具體代碼如下:
html 代碼片段
<swiper :options="swiperOption" ref="mySwiper">
<swiper-slide
v-for="(banner, index) in bannerList"
:key="banner.id">
<div class="banner-item">
<img :src="banner.imgUrl" alt="news">
<p>{{banner.title}}</p>
</div>
</swiper-slide>
<div class="swiper-pagination" slot="pagination"></div>
</swiper>
js 代碼片段
let vm = null;
new Vue({
data: function() {
return {
swiperOption: { // 輪播配置
loop: true, // 循環(huán)滾動(dòng)
on: {
click: function () {
// 這里有坑,需要注意的是:this 指向的是 swpier 實(shí)例,而不是當(dāng)前的 vue, 因此借助 vm,來(lái)調(diào)用 methods 里的方法
// console.log(this); // -> Swiper
// 當(dāng)前活動(dòng)塊的索引,與activeIndex不同的是,在loop模式下不會(huì)將 復(fù)制的塊 的數(shù)量計(jì)算在內(nèi)。
const realIndex = this.realIndex;
vm.handleClickSlide(realIndex);
}
}
}
},
bannerList: [
{
id: '1',
title: '世界杯揭幕戰(zhàn)-超新星1球2助攻俄羅斯5-0沙特 格里茲曼宣布留馬競(jìng)',
imgUrl: 'http://n.sinaimg.cn/sports/180/w640h340/20180615/AYes-hcyszrz3457297.jpg'
},
{
id: '2',
title: '顏值滿分!世界杯首日美女球迷盤(pán)點(diǎn)',
imgUrl: 'http://n.sinaimg.cn/sports/180/w640h340/20180615/H3Wz-hcyszrz4804003.jpg'
},
{
id: '3',
title: '盤(pán)點(diǎn)歷屆世界杯大比分“屠殺”',
imgUrl: 'http://n.sinaimg.cn/sports/180/w640h340/20180615/FNuk-hcyszrz4805039.jpg'
}
]
},
computed: {
swiper() {
return this.$refs.mySwiper.swiper;
}
},
created() {
vm = this;
},
methods: {
handleClickSlide(index) {
console.log('當(dāng)前點(diǎn)擊索引:', index);
}
}
})
希望能幫到你及更多的人
感謝各位大佬,問(wèn)題解決了,還是自己的頁(yè)面布局有些問(wèn)題。整個(gè)項(xiàng)目中,感覺(jué)ios對(duì)H5的要求要高于Android
@click.native=""
hmmm,可以計(jì)算當(dāng)前頁(yè)面需要的頁(yè)數(shù)n,搞n個(gè)iframe,每個(gè)iframe加載同樣的頁(yè)面,但是自動(dòng)定位到不同的位置來(lái)模擬這個(gè)需求。。。
下面代碼可以在當(dāng)前頁(yè)的控制臺(tái)中執(zhí)行
(()=>{
try{document.getElementById("print-view").remove();}catch(e){}
var pageHeight = 400;
var pageWidth = 1024;
var content = document.body.innerHTML;
var bgColor = document.body.style.backgroundColor;
var printViewContainer = document.createElement("div");
printViewContainer.id="print-view";
printViewContainer.style=`width:${pageWidth}`;
document.body.appendChild(printViewContainer);
printViewContainer.innerHTML = content;
var totalHeight = printViewContainer.clientHeight;
var totalPages = Math.ceil(printViewContainer.clientHeight * 1.0 / pageHeight);
printViewContainer.innerHTML = "";
printViewContainer.style=`background-color:#4e4e4e;position:absolute;width:${pageWidth+80}px;padding:40px;box-shadow:0 0 4px black;left:50%;margin-left:-${pageWidth/2}px;margin-top:20px;margin-bottom:20px;top:40px;z-index:100;`;
for(let i=0;i<totalPages;i++){
let div = document.createElement("div");
let innerContainer = document.createElement("iframe");
div.style = `margin:20px 10px;border:1px solid #9e9e9e;box-shadow:0 2px 3px gray;position:relative;overflow:hidden;height:${pageHeight}px;background-color:${bgColor};width:${pageWidth}px;`;
let offsetTop = i * pageHeight;
innerContainer.width = pageWidth;
innerContainer.height = pageHeight;
innerContainer.src = window.location.href;
innerContainer.style="border:none;";
innerContainer.scrolling = "no";
if(pageHeight * i + pageHeight > totalHeight){
innerContainer.height = totalHeight - pageHeight * i;
}
innerContainer.onload = function(){
innerContainer.contentWindow.scrollTo(0,pageHeight * i);
};
div.appendChild(innerContainer);
printViewContainer.appendChild(div);
}
})();你沒(méi)有在 page 的最外面申明 recorderManaager,你看touchstart函數(shù),為何里面有一個(gè) recordermanager 呢?
檢查你的事件,按住錄音,是長(zhǎng)按事件,你可能用了別的事件。沒(méi)錄到聲音,自然不會(huì)打印結(jié)果。
寫(xiě)個(gè)數(shù)組
[
{
status:2,
statusText:'出借中'
},
...
]
然后用v-for循環(huán)出來(lái)
或者更簡(jiǎn)單
statusTable={
[2]:'出借中',//如果status是string類型的則是'2':'出借中'
...
}
html模版
<span>{statusTable[val.status]}</span>
chrome瀏覽器默認(rèn)的line-height為18px,只能設(shè)置大于這個(gè)大小的數(shù)字,不能設(shè)置小于它的大小??梢钥紤]有transfrom的scale控制字體大小,但要注意,scale縮放的是整個(gè)元素的大小。
什么叫做javascript的構(gòu)造函數(shù)?
應(yīng)該是你自定對(duì)象(庫(kù)包)之類的初始化函數(shù)吧。
這個(gè)其實(shí)沒(méi)有必然聯(lián)系,只要你使用前初始化好了,且相應(yīng)處理不涉及DOM的綁定一般不會(huì)出錯(cuò)。
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。