watch有一個deep屬性的,可以試一下
你可以搜索關(guān)鍵字 require.ensure webpack
一般來講,用vue的路由懶加載基本上都是webpack的環(huán)境下。
require.ensure webpack 1.X 用的多
const Hello = ()=> import('./hello') webpack 2.x的時候經(jīng)常就這樣寫。
alert執(zhí)行完才看到變化
我覺得原因在于 執(zhí)行到alert語句時直接阻塞了瀏覽器的GUI渲染線程,alert前加一句console.log,可以發(fā)現(xiàn)這時候值是變化了的,但GUI渲染是被阻塞了的,所以界面沒有變化。
update.onclick = function() {
text.innerHTML = 'hello'
console.log(text.innerHTML) // 能打印出 hello
alert()
}
而debugger語句只是暫停JS的執(zhí)行,并不會影響到瀏覽器的渲染。
嚴格意義上來說,javascript沒有多線程的概念,所有的程序都是單線程依次執(zhí)行的。
你可以順序不要變,先讓頁面加載完成后再輸出一下,加一個定時器,一看就明白了。
var num = 2;
var b;
setTimeout(function(){
b = A(num);
},900)
setTimeout(function(){
console.log(b); //輸出:4
},1000)
var A = function(nums) {
return (nums + 2);
}
直接播放網(wǎng)絡(luò)的的不好嗎?
你就覺得不好那你,選擇下面兩種呀
下載到本地播放。
代理到對應(yīng)網(wǎng)絡(luò)地址。
<view class='tab'>
<view class='tab-menu'>
<view class='menu' wx:for="{{tabs}}" wx:key="{{index}}" data-tabidx="{{index}}" bindtap='switchTab'>
<text>{{item}}</text>
<view class='currentTab' wx:if="{{tabIdx === index}}"></view>
</view>
</view>
<swiper class='tab-content' current='{{tabIdx}}' bindchange='scrollTab'>
<swiper-item>
<view class='question-wrap'>
<view class='question-header'>
<text>[{{questions[current].type}}]</text>
<text class='total'><text class='current'>{{current+1}}</text>/{{questions.length}}</text>
</view>
<view class='title'>{{questions[current].title}}</view>
<view class='options'>
<view class='opt {{questions[current].right === index ? "right" : ""}}' wx:for="{{questions[current].options}}" wx:key="{{index}}">
<view class='tag'>
<image src='/icons/right.png' wx:if="{{questions[current].right === index}}"></image>
</view>
<view class='content'>{{item.content}}</view>
<text class='rate'>{{item.rate}}</text>
</view>
</view>
</view>
<view class='btns'>
<button disabled='{{current <= 0}}' bindtap="showPre">上一題</button>
<button disabled='{{current >= questions.length-1}}' bindtap="showNext">下一題</button>
</view>
</swiper-item>
<swiper-item>
<scroll-view scroll-y class='totalRank' lower-threshold="150" bindscrolltolower="getRank">
<view class='user' wx:for="{{ranks}}" wx:key="{{index}}">
<image src='{{item.img_url}}' class='avator'></image>
<view class='name'>{{item.name}}</view>
<view class='score'>{{item.score}}分</view>
<view class='order'>第{{item.no}}名</view>
</view>
</scroll-view>
</swiper-item>
</swiper>
</view>
page {
display: flex;
flex-direction: column;
height: 100%;
background: #fff;
font-size: 30rpx;
}
.tab {
flex: 1;
display: flex;
flex-direction: column;
}
.tab-content {
flex: 1;
overflow-y: auto;
}
.tab-menu {
height: 104rpx;
display: flex;
}
.currentTab {
background: #42c541;
height: 2rpx;
width: 132rpx;
position: absolute;
bottom: 20rpx;
}
.tab-menu .menu {
flex: 1;
text-align: center;
font-size: 28rpx;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
swiper-item {
overflow: auto;
}
.totalRank {
height: 100%;
}
.avator {
width: 60rpx;
height: 60rpx;
border-radius: 50%;
}
.user {
height: 88rpx;
display: flex;
align-items: center;
background: #f4f4f4;
padding: 0 43rpx;
margin: 30rpx 30rpx 0 30rpx;
border-radius: 10rpx;
box-sizing: border-box;
font-size: 24rpx;
}
.name, .score, .order {
flex: 1;
text-align: center;
}
.name{
margin-left: 50rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.order {
color: #42c541;
text-align: right;
}
.question-wrap{
display: flex;
flex-direction: column;
margin: 0 30rpx;
border: 2rpx solid #DCDCDC;
border-radius: 10rpx;
box-sizing: border-box;
padding: 0 50rpx;
margin-top: 40rpx;
}
.question-header{
display: flex;
justify-content: space-between;
margin-top: 60rpx;
}
/* .question-wrap .options{
max-height: 600rpx;
overflow: auto;
} */
.question-header .total{
color: #E3E3E3;
}
.question-header .current{
color: #353535;
}
.question-wrap .title{
margin-top: 36rpx;
min-height: 178rpx;
}
.opt{
text-align: center;
position: relative;
background: #F0F0F0;
margin-bottom: 44rpx;
border-radius: 10rpx;
padding: 26rpx 20rpx;
display: flex;
align-items: center;
}
.opt image, .opt .tag{
width: 46rpx;
height: 34rpx;
}
.opt .rate{
min-width: 3em;
}
.opt .content{
flex: 1;
text-align: center;
}
.right{
background: #FF920B;
color: #FFF;
}
.btns{
display: flex;
margin-top: 60rpx;
position: fixed;
left: 0;
bottom: 0;
width: 100%;
height: 148rpx;
}
.btns button{
width: 260rpx;
height: 88rpx;
line-height: 88rpx;
text-align: center;
border-radius: 10rpx;
color: #FFF;
background: #41C629;
}
.btns button:active{
background: #179B16;
color: #A2D7A2;
}
.btns button[disabled]:active{
background: #F7F7F7;
color: #ACACAC;
}
Page({
data: {
tabs: [
'題目分析',
'成績排名'
],
ranks: [
{ name: '張三', score: 93 },
{ name: '李四', score: 60 },
{ name: '趙六', score: 8 },
{ name: '王五', score: 1000 },
{ name: '馮二', score: 45 }
],
questions: [],
current: 0,
tabIdx: 0
}
})將你的二級目錄rewrite到index.html中。
配置proxy:
"/first":{
"target": "http://localhost:8000/",
"pathRewrite": { "^/first.*$" : "/index.html" }
},
建議你二級目錄給個統(tǒng)一的標識,比如: /main
<option v-for="(value,key,index) in data2">{{value.first_class_name}}</option>
你封裝了 commonItem 那應(yīng)該知道返回了一個 Promise,這是個異步操作,如果你想 variable 能被 getCommonItem 的調(diào)用方拿到,那要么改成經(jīng)典的 callback:
getCommonItem(value, callback) {
api.commonItem({value: value}).then(res => {
let variable = res.data.name
console.log("第一次",variable)
callback(variable)
})
}
getCommonItem(value, variable => {
console.log('第二次', variable)
})
要么繼續(xù)沿用 Promise:
getCommonItem(value) {
return api.commonItem({value: value}).then(res => {
let variable = res.data.name
console.log("第一次",variable)
return Promise.resolve(variable)
})
}
getCommonItem(...)
.then(variable => {
console.log('第二次', variable)
})var index= layedit.build('L_content', {
tool: ['face','code','image' ,'link', 'unlink', '|', 'left', 'center','right','yulan','strong','italic','underline']
}); //建立編輯器
$('button[type=submit]').click(function(){
//獲取編輯器的值
var content=layedit.getContent(index);
$.ajax({
url : action,
type : method || 'get',
data : data,
success(res)
{
cosole.log(res)
})你這里得寫 (data.depshow == true )不能直接寫depshow只要有內(nèi)容這里就顯示,就是對的,這里面識別的是表達式
因為我用了懶加載的方式,所以setting組件被分割成了0.js、1.js這樣的。如果這個頁面的路由是二級的 會提示js 404;這個時候只需要在webpack 里面配置output就行了;ps:我用的是laravel
mix.js('resources/assets/js/app.js', 'public/js')
.sass('resources/assets/sass/app.scss', 'public/css')
.webpackConfig({
node: {
fs: "empty"
},
module: {
noParse: /(mapbox-gl)\.js$/
},
output: {
publicPath: "/"
}
})
.version([
'public/js/app.js',
'public/css/app.css'
]);將rules中的type刪掉
原則上來講404也是頁面
你確定 generate_notify_resp 這個函數(shù)可以直接傳入字典,而不是 json 字符串?
import json
ret_xml = qr_wxpay.generate_notify_resp(json.dumps(ret_dict))let arr = […arr1, …arr2, …arr3, …];
document監(jiān)聽點擊事件
e.target!=彈窗 的時候,關(guān)閉
prodEnv = {
NODE_ENV: '"production"'
}
module.exports = merge(prodEnv, {
NODE_ENV: '"development"'
});
最后變成:
module.exports = {
NODE_ENV: '"development"'
}
webpack-merge這個模塊可以起到合并配置的作用
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領(lǐng)域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務(wù)負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。