在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/ HTML問(wèn)答
尛曖昧 回答

你為什么要?jiǎng)討B(tài)生成dom節(jié)點(diǎn)呢,Vue沒(méi)法直接監(jiān)測(cè)??!
你寫成“條件編譯”吧,使用v-if指令來(lái)根據(jù)實(shí)際需要渲染頁(yè)面,即把代碼寫進(jìn)HTML,根據(jù)實(shí)際運(yùn)行情況通過(guò)v-if指令告知Vue渲染指定元素節(jié)點(diǎn)
請(qǐng)記住,變化的是數(shù)據(jù),不變的是邏輯,這才是Vue的設(shè)計(jì)理念:MVVM!
變化的數(shù)據(jù)驅(qū)動(dòng)邏輯代碼,邏輯代碼來(lái)展現(xiàn)功能。
只要邏輯代碼能正確處理幾乎所有的數(shù)據(jù),那么這個(gè)軟件就不會(huì)有明顯影響使用的bug。

夢(mèng)囈 回答

不知道我跟你想的一不一樣,可以看下combineReducers的源碼:

var hasChanged = false
    var nextState = {}
    for (var i = 0; i < finalReducerKeys.length; i++) {
      var key = finalReducerKeys[i]
      var reducer = finalReducers[key]
      var previousStateForKey = state[key]
      var nextStateForKey = reducer(previousStateForKey, action)
      if (typeof nextStateForKey === 'undefined') {
        var errorMessage = getUndefinedStateErrorMessage(key, action)
        throw new Error(errorMessage)
      }
      nextState[key] = nextStateForKey
      hasChanged = hasChanged || nextStateForKey !== previousStateForKey
    }
    return hasChanged ? nextState : state

關(guān)鍵點(diǎn)在于每次reducer返回新的state會(huì)跟舊的state做===對(duì)比,如果false認(rèn)為store改變,從而觸發(fā)頁(yè)面重繪,如果true,則認(rèn)為不變,不會(huì)觸發(fā)重繪。所以reducer返回新的state是為了通知redux讓頁(yè)面重繪。

薄荷糖 回答

使用 System.Web.HttpUtility.JavaScriptStringEncode() 方法

@using System.Web;

@HttpUtility.JavaScriptStringEncode(item.p_day);
你的瞳 回答

ios安全方面做的比較好,點(diǎn)擊事件只有用戶觸摸才能觸發(fā),

雅痞 回答

.. 不太清楚你想干什么

沒(méi)用過(guò) bluebird, 大概看了下大多用在 nodejs 里面把 callback 轉(zhuǎn)變?yōu)?promise 化。你這里 boxrun 方法連形參都沒(méi)有轉(zhuǎn)成 promise 又有什么意義呢。你發(fā)現(xiàn)了最后 then 不執(zhí)行,那你有沒(méi)有想過(guò) then 應(yīng)該什么時(shí)候去執(zhí)行呢。就算你是為了簡(jiǎn)單的實(shí)驗(yàn)一下 run 方法也應(yīng)該寫成你熟悉的異步模塊的函數(shù),至少有一個(gè)回掉函數(shù)吧

class Box{
    constructor(name){
        this.name = name; 
    }
    run(cb){
      console.log(this.name + ' is running')
      cb(null) // null 代表沒(méi)有錯(cuò)誤 
    }
}

其實(shí)你可以自己嘗試一下這個(gè)庫(kù)要怎么把 callback 的函數(shù)轉(zhuǎn)變?yōu)?promise 對(duì)象,自己簡(jiǎn)單來(lái)寫可以會(huì)這樣

let box = new Box('ss')

let runAsync = (...args) => new Promise((r, j) => {
    box.run.call(box, ...args, (err, data) => {
        if (err) return j(err)
        r(data)
    })
})

runAsync().then(function(){
    console.log('stop');
})

可以看到如果你最后一個(gè)回掉函數(shù)都沒(méi)有,生產(chǎn)的 promise 就跟本沒(méi)有觸發(fā)錯(cuò)誤或者成功的時(shí)機(jī)

孤影 回答

type="text" data-bind = "lastName" type = "1"

兩個(gè)type那個(gè)說(shuō)了算?通過(guò)下面這個(gè)代碼我們可以發(fā)現(xiàn)attr獲取到的是text,效果觀看地址。而且你那種on(event, selector, fn)一般是用來(lái)綁在document上,也就是父級(jí)祖先級(jí)上,然后過(guò)濾觸發(fā)子節(jié)點(diǎn)的,文檔查看地址。

$('input').on('input',function(){
  console.log($(this).attr('type'))
})
妖妖 回答

1.可以刪除目錄下的.vscode里面的launch.json文件,這樣在哪一個(gè)js文件里面按F5,你調(diào)試的就是哪一個(gè)js文件

2.如果你lanuch.json文件里面有些配置,或者其他問(wèn)題,那請(qǐng)改成下面的內(nèi)容

{
    // 使用 IntelliSense 了解相關(guān)屬性。 
    // 懸停以查看現(xiàn)有屬性的描述。
    // 欲了解更多信息,請(qǐng)?jiān)L問(wèn): https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "啟動(dòng)程序",
            "program": "${workspaceFolder}/${relativeFile}"http://${relativeFile} 從當(dāng)前打開的文件夾到當(dāng)前打開的文件的路徑
        }
    ]
}

圖片描述

話寡 回答

removeEventListener 第二個(gè)參數(shù)傳的不對(duì)

旖襯 回答

@font-face {

        font-family: 'RobotoRegular';
        src: url('Roboto-Bold.eot'); /* IE9 Compat Modes */
        src: url('Roboto-Bold.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
             url('Roboto-Bold.woff') format('woff'), /*//Modern Browsers */
             url('Roboto-Bold.ttf')  format('truetype'), /* Safari, Android, iOS */
             url('Roboto-Bold.svg#RobotoRegular') format('svg'); /* Legacy iOS */
       }
       @font-face {
        font-family: 'RobotoRegular2';
        src: url('Roboto-Regular.eot'); /* IE9 Compat Modes */
        src: url('Roboto-Regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
             url('Roboto-Regular.woff') format('woff'), /*//Modern Browsers */
             url('Roboto-Regular.ttf')  format('truetype'), /* Safari, Android, iOS */
             url('Roboto-Regular.svg#RobotoRegular') format('svg'); /* Legacy iOS */
       }
六扇門 回答

設(shè)置image的mode為widthFix,然后寬度100%就成啦。就能自動(dòng)適應(yīng)圖片了
附官網(wǎng)說(shuō)明https://mp.weixin.qq.com/debu...

荒城 回答
arr = fields.map(key => obj.map(o => o[key]))
怣痛 回答

每次重新加載圖片的問(wèn)題。

傲嬌范 回答

<form action="javascript:return true;" autocomplete="off"> 這里的action不對(duì)吧。。
javascript:后面要加語(yǔ)句,然后return是放在函數(shù)體中的,而不能在其他地方使用

eval('return true')
//Uncaught SyntaxError: Illegal return statement
//   at <anonymous>:1:1 
巴扎嘿 回答

$(".bgimg").css({'background-image':'url(' + $('.img-box img').attr('src').substring(0,20) + ')"'});
涼薄 回答

async是generator的語(yǔ)法糖,但不是簡(jiǎn)單的替換就可以解決的
使用await語(yǔ)法自帶執(zhí)行器,而generator則是不帶執(zhí)行器,需要自己手工添加
await需要后面的變量是一個(gè)promise對(duì)象

給你個(gè)generator+promise對(duì) async/await的實(shí)現(xiàn)

//一個(gè)generator執(zhí)行器的實(shí)現(xiàn)
function run(generator){
    var gen=generator();
    var resultValue=gen.next();
    if(resultValue.done){
        return resultValue.value;
    }

    function runGenerator(value){
        Promise.resolve(value).then(function(data){
            var resultValue=gen.next(data);
            if(!resultValue.done){
                runGenerator(resultValue.value);
            }
        }).catch(function(error){
            gen.throw(new Error(error));
        });
    }

    return runGenerator(resultValue.value);
}

//執(zhí)行執(zhí)行器,
//傳入一個(gè)generator函數(shù),yield后面帶一個(gè)promise對(duì)象
run(function *(){
    var task1=function(){
        return new Promise(function(resolve,reject){
            setTimeout(function(){
                console.log("1000");
                resolve("1000");
            },1000);
        });
    };

    var task2=function(data){
        return new Promise(function(resolve,reject){
            setTimeout(function(){
                console.log("2000 :: "+data+"");
                resolve("2000 :: "+data+"");
            },1000);
        });
    };

    try{

        var data=yield task1();
        var data2=yield task2(data);

        return data2;
    }catch(error){
        console.log("~~~~error~~~");
    }

});
厭惡我 回答

瀏覽器只會(huì)實(shí)現(xiàn)一部分特性

可以看 https://kangax.github.io/comp...

祈歡 回答

...可能是滾動(dòng)的太猛,scroll觸發(fā)多次,造成多次請(qǐng)求。設(shè)置個(gè)標(biāo)志位試試,每次請(qǐng)求前檢查標(biāo)志位,判斷是否正在請(qǐng)求,scroll加throttle函數(shù)。

拽很帥 回答

已解決,解決方案如下

1,更改devtool參數(shù),在index.js中

devtool: 'source-map',

這樣我們就能得到具體的錯(cuò)誤信息.

2,如果我們還使用了ES6中的API,比如Promise,它將不會(huì)得到IE瀏覽器的支持,所以我們需要引用 'babel-polyfill'

webpack.base.conf.js
entry: {
    normal: ['babel-polyfill', './src/main.js']
},
main.js
import 'babel-polyfill';

3,引用插件是否已經(jīng)得到正確的編譯,我所使用到的插件,比如element-ui,vis等沒(méi)有得到正確的編譯,更改 'webpack.base.conf.js'文件

{
    test: /\.js$/,
    loader: 'babel-loader',
    include: [resolve('src'), resolve('test'), resolve('/node_modules/element-ui/src')]
}
// 前提是你必須安裝對(duì)應(yīng)的工具依賴
{
    test: /node_modules[\\\/]vis[\\\/].*\.js$/,
    loader: 'babel-loader',
    query: {
      cacheDirectory: true,
      presets: [ "babel-preset-es2015" ].map(require.resolve),
      plugins: [
        "transform-es3-property-literals", // #2452
        "transform-es3-member-expression-literals", // #2566
        "transform-runtime" // #2566
      ]
    }
  }

上下文環(huán)境

Node v8.11.3
npm v5.6.0

package.json 文件

"dependencies": {
    "axios": "^0.18.0",
    "babel-preset-es2015": "^6.24.1",
    "element-ui": "^2.4.5",
    "js-cookie": "^2.2.0",
    "lodash": "^4.17.10",
    "md5": "^2.2.1",
    "moment": "^2.22.2",
    "vee-validate": "^2.1.0-beta.6",
    "vue": "^2.5.2",
    "vue-cookies": "^1.5.6",
    "vue-iconfont": "^1.1.0",
    "vue-router": "^3.0.1",
    "vuex": "^3.0.1"
  },
  "devDependencies": {
    "autoprefixer": "^7.1.2",
    "babel-cli": "^6.26.0",
    "babel-core": "^6.22.1",
    "babel-helper-vue-jsx-merge-props": "^2.0.3",
    "babel-loader": "^7.1.1",
    "babel-plugin-component": "^1.1.1",
    "babel-plugin-syntax-jsx": "^6.18.0",
    "babel-plugin-transform-runtime": "^6.22.0",
    "babel-plugin-transform-vue-jsx": "^3.5.0",
    "babel-plugin-transform-es3-member-expression-literals": "^6.22.0",
    "babel-plugin-transform-es3-property-literals": "^6.22.0",
    "babel-polyfill": "^6.26.0",
    "babel-preset-env": "^1.3.2",
    "babel-preset-stage-2": "^6.22.0",
    "chalk": "^2.0.1",
    "copy-webpack-plugin": "^4.0.1",
    "css-loader": "^0.28.11",
    "extract-text-webpack-plugin": "^3.0.0",
    "file-loader": "^1.1.4",
    "friendly-errors-webpack-plugin": "^1.6.1",
    "html-webpack-plugin": "^2.30.1",
    "less": "^3.7.0",
    "less-loader": "^4.1.0",
    "node-notifier": "^5.1.2",
    "node-sass": "^4.9.2",
    "optimize-css-assets-webpack-plugin": "^3.2.0",
    "ora": "^1.2.0",
    "portfinder": "^1.0.13",
    "postcss-import": "^11.0.0",
    "postcss-loader": "^2.0.8",
    "postcss-url": "^7.2.1",
    "rimraf": "^2.6.0",
    "sass-loader": "^7.0.3",
    "semver": "^5.3.0",
    "shelljs": "^0.7.6",
    "style-loader": "^0.21.0",
    "stylus": "^0.54.5",
    "stylus-loader": "^3.0.2",
    "uglifyjs-webpack-plugin": "^1.1.1",
    "url-loader": "^0.5.8",
    "vis": "^4.21.0",
    "vue-loader": "^13.3.0",
    "vue-style-loader": "^3.1.2",
    "vue-template-compiler": "^2.5.2",
    "webpack": "^3.6.0",
    "webpack-bundle-analyzer": "^2.9.0",
    "webpack-dev-server": "^2.7.1",
    "webpack-merge": "^4.1.0"
  },

謝謝 Nine 的幫助

冷溫柔 回答

算。
但是會(huì)來(lái)這里問(wèn)這樣一個(gè)問(wèn)題,說(shuō)明你對(duì)模塊化的真正奧義還不明白 - 使用前端組件來(lái)解決工程問(wèn)題,頂多只能算是摸著了模塊化的門檻,離掌握它的內(nèi)涵,尚有一段不算短的距離。
模塊化是軟件行業(yè)一個(gè)非常通用的概念。你沒(méi)有看錯(cuò),不只是前端,所有涉及到軟件的方面,都不能不提到模塊化。事實(shí)上,前端模塊化的概念大部分來(lái)自于后端,這也是為什么有一部分前端框架中引用了極多的后端名詞。
模塊化要解決的是軟件本身一定會(huì)越來(lái)越龐大這個(gè)無(wú)解的問(wèn)題。既然不能阻止它的體積膨脹,那就只能從物理上將它切分成更小但是更多的,可以內(nèi)部自治,對(duì)外提供服務(wù)的小單元。微服務(wù),組件化,模塊化,概念大同小異,核心價(jià)值訴求卻是想通的。
所以,模塊化的最核心的優(yōu)勢(shì)是,大事化小。降低復(fù)雜度,提供可復(fù)用,提高項(xiàng)目組的協(xié)作能力,這些都是副產(chǎn)品,但卻是最為大家津津樂(lè)道的東西。

以上純屬個(gè)人理解,談不上真理更算不上奧義。因?yàn)槲乙恢闭J(rèn)為,領(lǐng)悟軟件開發(fā)中最核心的東西,永遠(yuǎn)需要身體力行,親自實(shí)踐。