刷新頁(yè)面出現(xiàn)的話可以看看willMount或者DidMount發(fā)了什么ajax請(qǐng)求
只能后臺(tái)自己刪除
你沒(méi)有進(jìn)入到你的項(xiàng)目的根目錄(即package.json所在的目錄)
已解決。
問(wèn)題原因應(yīng)該是用戶(hù)觸發(fā)鍵盤(pán)事件時(shí),antd給input標(biāo)簽添加了內(nèi)連樣式:width: 0。樣式覆蓋一下就可以了。
其實(shí)我看了半天,沒(méi)有理解你要想問(wèn)什么,特別是你所謂的“自定義的字段名數(shù)組跟隨數(shù)值數(shù)組同步排序” 到底是什么,即你應(yīng)該以數(shù)據(jù)表達(dá)你排序前的情況和排序后的情況,以及排序的依據(jù)。
我之前也碰到這樣問(wèn)題,后來(lái)理解了
初始化時(shí)候conponData = {}空對(duì)象里面的endTime是undefined
你可以這樣:
<ul v-for="(parent,i) in obj">
<li v-for="(child,index) in parent" @click="Identify(i,index)">{{child}}</li>
</ul>
取值:
Identify(i,index){
console.log(i);
console.log(index);
}
這樣你就擁有兩個(gè)索引,做你任何你想做的事情啦。
搞不懂你的問(wèn)題是什么……
<p>{{text}}<span>{{less ? '...省略' : '收起'}}<span></p>
App.vue:
<template>
<div>
<popup v-model="visible">
我是popup組件
</popup>
</div>
</template>
<script>
export default {
data () {
return {
visible: true
}
},
created () {
this.$toast('啦啦啦!我是賣(mài)報(bào)的小當(dāng)家。')
}
}
</script>
<style lang="scss" rel="stylesheet/scss" type="text/scss">
</style>
運(yùn)行的效果:
popup全局組件已經(jīng)注冊(cè)成功了,上面效果圖就說(shuō)明了。但是toast里面引用就報(bào)錯(cuò)。
編譯出的html文件:
...
<script type="text/javascript" src="/static/js/common.js?f56345f"></script>
<script type="text/javascript" src="/static/js/store.js?f56345f"></script>
...
common.js是公共js文件,store.js是對(duì)應(yīng)頁(yè)面的js文件。common.js 和 store.js里面都引用了.vue文件,導(dǎo)致2個(gè)加入了vue.esm.js這文件,相當(dāng)于存在2個(gè)Vue對(duì)象,所有我就嘗試了我提問(wèn)時(shí)寫(xiě)的2種寫(xiě)法(保證common.js 和 store.js使用的是同一個(gè)Vue對(duì)象),依然差強(qiáng)人意,需要各位幫忙看看如何解決這問(wèn)題。
當(dāng)然改為單頁(yè)面,單文件入口就不會(huì)出現(xiàn)以上問(wèn)題。因項(xiàng)目需求只能做多頁(yè)面,多入口。
補(bǔ)充:
目前已經(jīng)解決問(wèn)題經(jīng)NextStack的提點(diǎn),使用CommonChunkPlugin成功解決問(wèn)題,代碼修改如下:
// common.js
import Toast from './plugins/toast'
import Popup from './components/popup'
export default function (Vue) {
Vue.use(Toast)
Vue.use(Popup)
}
// 對(duì)應(yīng)頁(yè)面的js
import Vue from 'vue'
import install from '../../common'
import App from './App.vue'
install(Vue)
new Vue({
template: '<App/>',
components: {App}
}).$mount('#app')
代碼如上修改,并且webpack設(shè)置里移除common這個(gè)入口。這樣只會(huì)出現(xiàn)一個(gè)vue對(duì)象,然后使用CommonChunkPlugin把公用代碼給提取出來(lái)。
webpack設(shè)置:
const fs = require('fs')
const path = require('path')
const webpack = require('webpack')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const config = require('../package.json')
/**
* 獲取絕對(duì)路徑
* @param dir
* @returns {string|*}
*/
function resolve (dir) {
return path.join(process.cwd(), dir)
}
/**
* vue css加載器
* @returns {
* {css: *, scss: *}
* }
*/
function cssLoaders () {
const cssLoader = {
loader: 'css-loader',
options: {
minimize: process.env.NODE_ENV !== 'development',
sourceMap: false
}
}
function generateLoaders (loader, loaderOptions) {
const loaders = [cssLoader]
if (loader) {
loaders.push({
loader: loader + '-loader',
options: Object.assign({}, loaderOptions, {
sourceMap: false
})
})
}
if (process.env.NODE_ENV !== 'development') {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
return {
css: generateLoaders(),
scss: generateLoaders('sass')
}
}
const pages = fs.readdirSync(resolve('src/pages'))
module.exports = function ({plugins, htmlPluginOptions}) {
const htmlPlugins = []
const entrys = {
// 'common': './src/common.js'
}
for (const name of pages) {
const entry = `./src/pages/${name}/index.js`
entrys[name] = [entry]
if (process.env.NODE_ENV === 'development') entrys[name].push('./build/dev-client')
htmlPlugins.push(new HtmlWebpackPlugin(Object.assign({
filename: process.env.NODE_ENV === 'development' ? name + '.html' : resolve(config.id + '/' + name + '.html'),
template: `src/pages/${name}/index.html`,
inject: true,
// chunks: ['common', name],
chunks: ['common.js', name],
hash: false,
chunksSortMode (a, b) {
return a.id < b.id ? 1 : -1
},
config: {
env: process.env.NODE_ENV
}
}, htmlPluginOptions)))
}
const chunks = Object.values(entrys)
htmlPlugins.push(
new webpack.optimize.CommonsChunkPlugin({
name: 'vendors',
chunks: chunks,
minChunks: chunks.length
})
// new webpack.optimize.CommonsChunkPlugin({
// name: 'common',
// chunks: ['common']
// })
)
return {
entry: entrys,
output: {
path: resolve(config.id),
filename: 'static/js/[name].js?[hash:7]',
publicPath: `/`,
chunkFilename: 'static/js/[id].[hash].js'
},
resolve: {
extensions: ['.vue', '.js'],
alias: {
'@': resolve('public/src'),
'vue$': 'vue/dist/vue.esm.js'
}
},
devtool: process.env.NODE_ENV !== 'development' ? false : '#cheap-module-eval-source-map',
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: cssLoaders()
}
},
{
test: /\.css$/,
use: process.env.NODE_ENV !== 'development' ? ExtractTextPlugin.extract('css-loader') : ['style-loader', 'css-loader']
},
{
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('src')]
},
{
test: /\.(png|jpe?g|gif|svg|woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: `[path][name].[ext]?[hash:7]`
}
}
]
},
// plugins: htmlPlugins.concat(plugins)
plugins: htmlPlugins.concat(plugins).concat([new webpack.optimize.CommonsChunkPlugin('common.js')])
}
}
被注釋掉的代碼,是原配置。已經(jīng)成功解決了,非常感謝NextStack
keypress事件的兼容性不好,不建議監(jiān)聽(tīng)這個(gè)事件。
可以監(jiān)聽(tīng)input事件,然后用正則判斷字符串是否合法:
var inputer = document.getElementById("inputer");
var lastValue = '';
inputer.addEventListener("input", function(e) {
if (!/^\d*$/.test(e.target.value)) {
this.value = lastValue;
}
}, false);
.需要加個(gè)\.
ui = render(state)更合理。
先明確下概念:
props): 從父組件到子組建的數(shù)據(jù)傳遞state): 只能定義在組件內(nèi)部, 定義組件的自己的狀態(tài)props也可以用來(lái)構(gòu)建頁(yè)面,但是props不是自發(fā)性改變的,他是父組件傳遞下來(lái)的,可以理解為這是一個(gè)常量,但是state就不一樣了,在組件的生命周期中,state隨時(shí)可以通過(guò)setState改變,相應(yīng)UI也會(huì)進(jìn)行改變,可以理解為這是一個(gè)變量。所以說(shuō)呢,雖然props和state都可以影響UI改變,但是在組件render之后再update組件(組件內(nèi)部數(shù)據(jù)更新)只能通過(guò)setState了。
swiper2 兼容性是IE7~10。
先設(shè)置lock 為true,動(dòng)態(tài)添加數(shù)據(jù)的時(shí)候,請(qǐng)求沒(méi)有成功之前會(huì)會(huì)出現(xiàn)一個(gè)正在加載標(biāo)示,請(qǐng)求成功,顯示數(shù)據(jù),lock值變?yōu)閒alse,鎖定加載,不知道這樣解釋?zhuān)隳苊靼酌?/p>
復(fù)制粘貼可用
function getInfo(pagenum,createtime,location) {
sessionStorage.setItem('pagenum', pagenum); //保存當(dāng)前頁(yè)數(shù)
$.ajax({
type: 'post',
url: 'http://127.0.0.1:8080/gateway/CaptureandRecord?method=getvideo',
dataType: 'text',
data: {
'pagenum': pagenum,
'createtime':createtime,
"location":location,
},
async: false,
success: function(data) {
console.log("data"+data);
var data = JSON.parse(data);
console.log("data"+data);
var list = data.videos;
if (data.flag == "success") {
$('#content .row').html("");
for (var i = 0; i < (data.countmessage<parseInt(pagenum)*8?data.countmessage-(parseInt(pagenum)-1)*8:8); i++) {
$('#content .row').append(
'<div class="col-md-3">' +
' <div class="view">' +
'<video id="'+list[i].uid+'" src="' + list[i].video + '" controls="controls">' +
'</video>'+
'</div>' +
'<ul>' +
'<li>' +
'<span>時(shí)間:</span>' +
'<span>' + data.time[i] + '</span>' +
'</li>' +
'<li>' +
'<span>位置:</span>' +
'<span>' + list[i].location + '</span>' +
'</li>' +
'<li>' +
'<button class="delete" onclick="delInfo(this,' + list[i].uid + ')" data-whatever="' + list[i].uid + '">刪除</button>' +
'</li>' +
'</ul>' +
'</div>'
)
}
}
}
})
}
/**
* [delInfo 刪除]
* @param 當(dāng)前對(duì)象 this
* @param ID
* @return
*/
function delInfo(obj,id) {
var t = obj;
$.ajax({
type: 'post',
url: 'http://127.0.0.1:8080/gateway/CaptureandRecord?method=deletevideobyuid',
dataType: 'text',
data: {
"uid": id,
},
async: true,
success: function(data) {
var data = JSON.parse(data);
if (data.flag == 'success') {
alert('刪除成功');
$(t).parents('.col-md-3').remove();
} else {
alert("刪除失敗");
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log(XMLHttpRequest.status);
console.log(XMLHttpRequest.readyState);
console.log(textStatus);
},
})
}cron沒(méi)執(zhí)行,參考這個(gè)https://ysicing.blog/Mac-cron...
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(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)師。