鍍金池/ 問(wèn)答/ HTML問(wèn)答
吃藕丑 回答

給你寫(xiě)了一個(gè)。你看看
鏈接描述

雅痞 回答

感覺(jué)這是webpack的工作,跟vue無(wú)關(guān)吧,我看webpack文檔有一部分你的需求有點(diǎn)像,你看看
懶加載: https://www.webpackjs.com/gui...

clipboard.png

代碼分離: https://www.webpackjs.com/gui...

clipboard.png

念初 回答

既然是SPA那么就盡量不要用session了吧 ,可用jwt。

vue的路由不會(huì)被node的路由所捕獲。 另外建議你可以用ng代理你的vue程序,api單獨(dú)去部署,然后通過(guò)ng代理避免跨域

疚幼 回答

仔細(xì)閱讀webpack-DevServer文檔,可以發(fā)現(xiàn)發(fā)現(xiàn)配置中加入index: '',即可代理根目錄,所以只需在代理中再配置一個(gè)根目錄,代碼如下

const cookieMap = {};
module.exports = {
  devServer: {
    index: '',// specify to enable root proxying
    historyApiFallback: true,
    hot: true,
    inline: true,
    progress: true,
    openPage: 'login',
    proxy: [ {
      context: ['/api'],
      target: "http://api.example.com",
      changeOrigin: true,
      onProxyReq(proxyReq, req, res) {
        let cookie = cookieMap[req.get('User-Agent')] || '';
        proxyReq.setHeader('Cookie', cookie);
      }
    }, {
      context: ['/login'],
      target: "http://login.example.com",
      changeOrigin: true,
      onProxyRes(proxyRes, req, res) {
        if(proxyRes.statusCode === 302) {
          if(proxyRes.headers['set-cookie']) {
            cookieMap[req.get('User-Agent')] = proxyRes.headers['set-cookie'].join(';');
          }
          proxyRes.headers['Location'] = '/';
        }
      }
    }, {
      context: ['/'],
      bypass: function(req, res, proxyOptions) {
        if (req.url === '/' && !cookieMap[req.get('User-Agent')]) {
          res.redirect('/login');
          return true;
        }
      }
    }]
  }
}
挽歌 回答

import babel from 'rollup-plugin-babel';
export default {
// ...
plugins: [

babel({
  exclude: 'node_modules/**',
  plugins: ['external-helpers']
}),

]
}
issues:https://github.com/storybooks...

遺莣 回答
而且都是get請(qǐng)求,參數(shù)都在鏈接上面;
現(xiàn)在只要把這個(gè)請(qǐng)求鏈接拷貝下來(lái),另開(kāi)一個(gè)頁(yè)面也是可以請(qǐng)求到數(shù)據(jù)的;

可以把權(quán)限信息放header里比如token

現(xiàn)在覺(jué)得這樣不安全,別人抓包就可以抓到數(shù)據(jù);

說(shuō)實(shí)話,無(wú)論怎么樣都能抓,抓了就能發(fā),要保證鏈路中的安全可以上https。

請(qǐng)問(wèn)有沒(méi)有其他更好的方式,在請(qǐng)求接口的時(shí)候做是否登錄校驗(yàn)?

這個(gè)接口能不能被匿名訪問(wèn),或者是否只能被特定用戶(hù)訪問(wèn),這是后端本該存在的功能,如果不是公共資源,是必須做登陸驗(yàn)證的,這不是可選項(xiàng)。

囍槑 回答

每四個(gè)分一組?

var result = [];
for (var i = 0, len = data.length; i < len; i += 4) {
  result.push(data.slice(i, i + 4));
}
影魅 回答

1.如果你的title類(lèi)和list類(lèi)可能出現(xiàn)復(fù)用也就是其他元素也可能用到這兩個(gè)類(lèi)的情況下那肯定是分開(kāi)寫(xiě)的
2.如果只是要定義list的樣式,那么一個(gè)類(lèi)就夠了

嘟尛嘴 回答

..., watch: { 'params.limit': function (newValue, oldValue) { }, name: function (newValue, oldValue) { } },

假設(shè)你的ViewModel里面有一個(gè)對(duì)象是 { params: { limit: '' }, name: '' }

舊酒館 回答

http://www.cnblogs.com/longm/...
計(jì)算白屏?xí)r間

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>白屏</title>
  <script type="text/javascript">
    // 不兼容performance.timing 的瀏覽器,如IE8
    window.pageStartTime = Date.now();
  </script>
  <!-- 頁(yè)面 CSS 資源 -->
  <link rel="stylesheet" href="common.css">
  <link rel="stylesheet" href="page.css">
  <script type="text/javascript">
    // 白屏?xí)r間結(jié)束點(diǎn)
    window.firstPaint = Date.now();
  </script>
</head>
<body>
  <!-- 頁(yè)面內(nèi)容 -->
</body>
</html>

因此白屏?xí)r間則可以這樣計(jì)算出:

可使用 Performance API 時(shí)

白屏?xí)r間 = firstPaint - performance.timing.navigationStart;

首屏?xí)r間
通常計(jì)算首屏的方法有

首屏模塊標(biāo)簽標(biāo)記法
統(tǒng)計(jì)首屏內(nèi)加載最慢的圖片的時(shí)間
自定義首屏內(nèi)容計(jì)算法

1、首屏模塊標(biāo)簽標(biāo)記法

首屏模塊標(biāo)簽標(biāo)記法,通常適用于首屏內(nèi)容不需要通過(guò)拉取數(shù)據(jù)才能生存以及頁(yè)面不考慮圖片等資源加載的情況。我們會(huì)在 HTML 文檔中對(duì)應(yīng)首屏內(nèi)容的標(biāo)簽結(jié)束位置,使用內(nèi)聯(lián)的 JavaScript 代碼記錄當(dāng)前時(shí)間戳。如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>首屏</title>
  <script type="text/javascript">
    window.pageStartTime = Date.now();
  </script>
  <link rel="stylesheet" href="common.css">
  <link rel="stylesheet" href="page.css">
</head>
<body>
  <!-- 首屏可見(jiàn)模塊1 -->
  <div class="module-1"></div>
  <!-- 首屏可見(jiàn)模塊2 -->
  <div class="module-2"></div>
  <script type="text/javascript">
    window.firstScreen = Date.now();
  </script>
  <!-- 首屏不可見(jiàn)模塊3 -->
  <div class="module-3"></div>
    <!-- 首屏不可見(jiàn)模塊4 -->
  <div class="module-4"></div>
</body>
</html>

時(shí)首屏?xí)r間等于 firstScreen - performance.timing.navigationStart;

事實(shí)上首屏模塊標(biāo)簽標(biāo)記法 在業(yè)務(wù)中的情況比較少,大多數(shù)頁(yè)面都需要通過(guò)接口拉取數(shù)據(jù)才能完整展示,因此我們會(huì)使用 JavaScript 腳本來(lái)判斷首屏頁(yè)面內(nèi)容加載情況。

2、統(tǒng)計(jì)首屏內(nèi)圖片完成加載的時(shí)間

通常我們首屏內(nèi)容加載最慢的就是圖片資源,因此我們會(huì)把首屏內(nèi)加載最慢的圖片的時(shí)間當(dāng)做首屏的時(shí)間。

由于瀏覽器對(duì)每個(gè)頁(yè)面的 TCP 連接數(shù)有限制,使得并不是所有圖片都能立刻開(kāi)始下載和顯示。因此我們?cè)?DOM樹(shù) 構(gòu)建完成后將會(huì)去遍歷首屏內(nèi)的所有圖片標(biāo)簽,并且監(jiān)聽(tīng)所有圖片標(biāo)簽 onload 事件,最終遍歷圖片標(biāo)簽的加載時(shí)間的最大值,并用這個(gè)最大值減去 navigationStart 即可獲得近似的首屏?xí)r間。

此時(shí)首屏?xí)r間等于 加載最慢的圖片的時(shí)間點(diǎn) - performance.timing.navigationStart;

3、自定義模塊內(nèi)容計(jì)算法

由于統(tǒng)計(jì)首屏內(nèi)圖片完成加載的時(shí)間比較復(fù)雜。因此我們?cè)跇I(yè)務(wù)中通常會(huì)通過(guò)自定義模塊內(nèi)容,來(lái)簡(jiǎn)化計(jì)算首屏?xí)r間。如下面的做法:

忽略圖片等資源加載情況,只考慮頁(yè)面主要 DOM
只考慮首屏的主要模塊,而不是嚴(yán)格意義首屏線以上的所有內(nèi)容

ajax 就可以,此處以 fetch 為例

fetch("csv.csv")
  .then(v => v.text())
  .then(data => console.log(data))

clipboard.png

遺莣 回答

日經(jīng)問(wèn)題,SF上面都問(wèn)過(guò)很多次了。

javascript 連等賦值問(wèn)題

懶豬 回答

不是光設(shè)置viewport就行的吧,頁(yè)面內(nèi)容本來(lái)就多,如果要適應(yīng)小屏幕,得用自適應(yīng)布局之類(lèi)的

有你在 回答

它加載下一章時(shí)又沒(méi)有把上一章刪掉,為什么要重新加載
圖片描述

選擇 回答

clipboard.png

如果你有興趣讀標(biāo)準(zhǔn)可以看看 https://xhr.spec.whatwg.org/

冷眸 回答

加一條

redirect: 'layout/TwoLevelHeadlines'
挽歌 回答

el-table-column設(shè)置min-width 官網(wǎng)api寫(xiě)的很清楚element UI Table

我不懂 回答

找到一個(gè)鏈接描述可以解決,謝謝大家~