var path = require('path')
var utils = require('./utils')
var webpack = require('webpack')
var config = require('../config')
var merge = require('webpack-merge')
var baseWebpackConfig = require('./webpack.base.conf')
var CopyWebpackPlugin = require('copy-webpack-plugin')
var HtmlWebpackPlugin = require('html-webpack-plugin')
var ExtractTextPlugin = require('extract-text-webpack-plugin')
var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
var env = config.build.env
var webpackConfig = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({
sourceMap: config.build.productionSourceMap,
extract: true
})
},
devtool: config.build.productionSourceMap ? '#source-map' : false,
output: {
path: config.build.assetsRoot,
filename: utils.assetsPath('js/[name].[chunkhash].js', true),
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
},
plugins: [
// http://vuejs.github.io/vue-loader/en/workflow/production.html
new webpack.DefinePlugin({
'process.env': env
}),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
},
sourceMap: true
}),
// extract css into its own file
new ExtractTextPlugin({
filename: utils.assetsPath('css/[name].[contenthash].css', true),
allChunks: true
}),
// Compress extracted CSS. We are using this plugin so that possible
// duplicated CSS from different components can be deduped.
new OptimizeCSSPlugin({
cssProcessorOptions: {
safe: true
}
}),
// generate dist index.html with correct asset hash for caching.
// you can customize output by editing /index.html
// see https://github.com/ampedandwired/html-webpack-plugin
...utils.getHtmlPlugins(),
// keep module.id stable when vender modules does not change
new webpack.HashedModuleIdsPlugin(),
// split vendor js into its own file
<1.--------------------------------------------------------------------->
// new webpack.optimize.CommonsChunkPlugin({
// name: 'vendor',
// minChunks: function (module, count) {
// // any required modules inside node_modules are extracted to vendor
// return (
// module.resource &&
// /\.js$/.test(module.resource) &&
// module.resource.indexOf(
// path.join(__dirname, '../node_modules')
// ) === 0
// )
// }
// }),
----------------------------------------------------------------------
// extract webpack runtime and module manifest to its own file in order to
// prevent vendor hash from being updated whenever app bundle is updated
<2.--------------------------------------------------------------------->
// new webpack.optimize.CommonsChunkPlugin({
// name: 'manifest',
// chunks: ['vendor']
// }),
----------------------------------------------------------------------
// copy custom static assets
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: config.build.assetsSubDirectory,
ignore: ['.*']
}
])
]
})
if (config.build.productionGzip) {
var CompressionWebpackPlugin = require('compression-webpack-plugin')
webpackConfig.plugins.push(
new CompressionWebpackPlugin({
asset: '[path].gz[query]',
algorithm: 'gzip',
test: new RegExp(
'\\.(' +
config.build.productionGzipExtensions.join('|') +
')$'
),
threshold: 10240,
minRatio: 0.8
})
)
}
if (config.build.bundleAnalyzerReport) {
var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
webpackConfig.plugins.push(new BundleAnalyzerPlugin())
}
module.exports = webpackConfig
可以在寫組件的時候多去考慮一下代碼的結(jié)構(gòu),精簡代碼從而實現(xiàn)你想要的模塊。
已經(jīng)找到方法了,是我自己SB了,之前其實解決另一個傳參的時候已經(jīng)使用了這個方法,自己沒去試。
Dialog的show()方法會調(diào)用其onCreate()方法,ProgressBar是android系統(tǒng)類,
如果斷點調(diào)試沒有執(zhí)行, 可能原因
還是沒有人回答呢
http://t.yushu.im這個網(wǎng)址打不...,今天測試還好好的,就剛夠突然打不開了,怎么回事
play用touch事件觸發(fā)或者放到wxready里回調(diào)加載。
1.如果用的是jQuery Ajax,可以使用自帶的全局處理;
$.ajaxSetup({
type: "POST",
error: function(xhr, textStatus, errorThrown){
switch (xhr.status){
case(408):
alert("請求超時");
break;
default:
break;
}
},
success: function(data){
alert("操作成功");
}
});
2.如果用的是 fetch或者XMLHttpRequest,可以封裝一個處理請求的模塊,在這個模塊里處理一些全局的網(wǎng)絡(luò)錯誤。以后所有的請求都用這個模塊去處理。
如果是客戶端先close的話,要等服務(wù)器處理了你的請求然后服務(wù)器close,客戶端才會響應(yīng)onclose這個事件
官方的示例是直接放了字符串,但是你可以v-bind到變量上啊,變量更改提示文字就更改了。
<van-field
v-model="phone"
label="手機號"
placeholder="請輸入手機號"
:error-message="errorMessage"
/>
還有表單效驗的確沒內(nèi)置,這很無語,建議自己結(jié)合async-validator擼一個,也不難
思考以下情景:
小結(jié):
jvm 需要有不同的類加載器,因為它一方面允許你在一個 jvm 里運行不同的應(yīng)用程序,另一方面方便你獨立的對不同類庫進行運行時增強。
1.看你現(xiàn)在的代碼A和B沒有任何關(guān)聯(lián)關(guān)系,如果B是A的組件的話可以通過props傳入
2.如果你只是想把A的方法作為公共的方法,那么可以寫一個公共的js,不需要繼承component,直接在b里import,然后就可以調(diào)用b的方法了,但是這個時候調(diào)用的this并不是指向B組件的實例,所以調(diào)用的時候用類似change.call(this)這種
servlet生命周期,執(zhí)行順序了解一下,瀏覽器地址欄輸入URL請求,是get請求。
正常定義的boolean類型的props,可以綁定布爾值的,只有布爾值才行,其他的一切值都算true,包括空串等都是true。剩下的如input的disabled等這些原生的boolean類型的屬性也遵守這個規(guī)則。
:autoplay="val"
val = true/false清除緩存之后,要重新登錄啊。強制跳轉(zhuǎn)到登錄頁面去。
302是重定向。一般會在ajax中返回重定向后的地址Location,
var location = xhr.getResponseHeader('Location');
然后拿location作為新地址重新發(fā)起ajax請求。參考:
ajax異步請求302
React 里面除了原生 HTML 元素之外,你自己的組件是不會自動觸發(fā)什么 onClick 之類的事件的,需要你自己手動調(diào)用父組件通過 props 傳入的方法。
php只是服務(wù)端的東西,不可能獲取到客戶端的東西,需要前端app給你提供信息就可以,h5是無法獲取用戶端信息的。所以得做個app來讀取,比如你可以用mui,5+ sdk有接口可以獲取通訊錄。
配置項什么的都對,解析后臺數(shù)據(jù)時傳過來的是一個字符串,應(yīng)該在前面加上一個JSON.parse()
北大青鳥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)中華民族偉大復興的升級產(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)師。