鍍金池/ 問答/ HTML問答
別瞎鬧 回答

Nginx本身是一個Server,當nginx作為一個代理服務器運行起來的后,用戶A向nginx發(fā)起一個http請求實際上是一個基于tcp/ip的連接,因為http是tcp/ip協(xié)議簇的一個組合協(xié)議。當nginx收到請求后nginx會遍歷server實例下的location模塊數(shù)組,匹配到模塊后讀取模塊配置,proxy_pass參數(shù)作為nginx的下一跳目標宿主機,兩個主機之間需要建立基于傳輸?shù)目尚湃芜B接,而剛好tcp/ip提供連接可靠(面向連接)基于傳輸的特性,因此nginx服務器和宿主機之間想要建立一個可靠連接基于tcp/ip進行是最佳選擇,當nginx解析出proxy_pass參數(shù)的url之后與宿主機建立起一個基于http的可靠連接似乎順理成章,nginx代理現(xiàn)在已經打通了兩邊的連接,那么可以開始運輸資源了。

硬扛 回答

這是要依賴框架的,看你的博客用的是什么工具,最后發(fā)布的肯定是html而不是md,所以可能是./test.html

巴扎嘿 回答

你是不是多加了 '.'

近義詞 回答

laravel 里面默認沒有場景的概念,你可以使用不同的Request來模擬場景,達到你的需求

孤慣 回答

登錄之后localStorage記錄token了嗎,看寫法好像是axios的攔截器獲取驗證不通過導致的跳轉

陌南塵 回答
// 獲取17px
dom.style.transform.match(/translate3d.+,(.+),/)[1].trim()
賤人曾 回答

列表渲染的時候對匹配到的文字進行替換,具體操作就是js改變數(shù)據可以直接拼接html,

舊酒館 回答

教程地址

找到了這個地址,看了看

const evalExpr = /<%=(.+?)%>/g;//(.+?)相當于是匹配一行的內容
//這個是從'<%='開始到'%>'結束,如果中間換行了不會匹配,例如 <%=val%>那么val就是被匹配到的值
const expr = /<%([\s\S]+?)%>/g;//([\s\S]+?)可以匹配多行
//這個是從'<%'開始到'%>'結束,換行了也會繼續(xù)匹配到


//兩個表達式的后面/g,相當于是參數(shù),g表示著全局,就是只要符合這個匹配條件的都會匹配到
//emmmmmmmmm我覺得我表達得可能不是很清楚...   .  + ? \s \S可以去翻一下正則的手冊了解一下

parse傳參數(shù)為什么要這么傳,這個就是由你的模板決定的了,

let template = `
<ul>
  <% for(let i=0; i < data.length; i++) { %>
    <li><%= data[i] %></li>
  <% } %>
</ul>
`;
//data.supplies.length 修改成data.length   data.supplies[i],修改成data[i]  這樣你就可以傳入數(shù)組了
console.log(parse(["broom", "mop", "cleaner"]));

template為什么不用定義聲明?啥意思,沒懂

為什么它還有方法.replace?template是一個string對象,本來就有著replace這個方法 string對象 string對象 replace方法 了解一下

不是很懂template那段寫的是什么意思?
這個主要就是替換了

template = template
    .replace(evalExpr, '`); \n  echo( $1 ); \n  echo(`')
    .replace(expr, '`); \n $1 \n  echo(`');
    
//咋說呢emmmm,我們拆開一下,先看看上面的string對象 replace方法,主要就是替換文本
template = template.replace(evalExpr, '`); \n  echo( $1 ); \n  echo(`');
//evalExpr = /<%=(.+?)%>/g;  前面已經知道了是替換文本中的 <%=xxxxx%>的內容
//所以這個語句就是,吧template里面的所匹配到的<%=xxxxx%>的內容替換掉
//替換成什么呢?替換成        "); \n  echo( $1 ); \n  echo("     ,里面最核心的就是$1了
//$1表示與 regexp(evalExpr 正則表達式) 中的第 1 到第 99 個子表達式相匹配的文本。(我copy w3c的)
//也就是(.+?)表示的內容,對就是 xxxxx 那玩意
//然后我的文本(<%=xxxxx%>)就變成了        "); \n  echo( xxxxx  ); \n  echo("
//返回這個文本,template又被賦值了,進入下一個

template = template.replace(expr, '`); \n $1 \n  echo(`');
//同上啊,這回只是 <%([\s\S]+?)%> 變成了 "`); \n xxxxx  \n  echo(`"
//上面的單引號我都換成了雙引號,'和`看得有點亂....

template = 'echo(`' + template + '`);';//文本相加,這個應該很容易看懂吧
let script =
    `(function parse(data){
    let output = "";

    function echo(html){
      output += html;
    }

    ${ template }

    return output;
  })`;
//也是文本合成
return output; //返回這一串合成的代碼

我覺得樓主可以用調試功能,這樣可以看到每一個變量的每一步變化過程,再不濟用console.log()也不錯

圖片描述

呆萌傻 回答

1.加入配置:axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
2.引入:import Qs from 'qs'
3.post請求中,需要將數(shù)據序列化:data: Qs.stringify(params),

尐潴豬 回答

說明 between 這個 operator 沒有生效,有可能是 http://docs.sequelizejs.com/m... 的原因。
把 operatorsAliases 加上試試:

const Sequelize = require('sequelize');

const Op = Sequelize.Op;      
const operatorsAliases = {
    $eq: Op.eq,
    $ne: Op.ne,
    $gte: Op.gte,
    $gt: Op.gt,
    $lte: Op.lte,
    $lt: Op.lt,
    $not: Op.not,
    $in: Op.in,
    $notIn: Op.notIn,
    $is: Op.is,
    $like: Op.like,
    $notLike: Op.notLike,
    $iLike: Op.iLike,
    $notILike: Op.notILike,
    $regexp: Op.regexp,
    $notRegexp: Op.notRegexp,
    $iRegexp: Op.iRegexp,
    $notIRegexp: Op.notIRegexp,
    $between: Op.between,
    $notBetween: Op.notBetween,
    $overlap: Op.overlap,
    $contains: Op.contains,
    $contained: Op.contained,
    $adjacent: Op.adjacent,
    $strictLeft: Op.strictLeft,
    $strictRight: Op.strictRight,
    $noExtendRight: Op.noExtendRight,
    $noExtendLeft: Op.noExtendLeft,
    $and: Op.and,
    $or: Op.or,
    $any: Op.any,
    $all: Op.all,
    $values: Op.values,
    $col: Op.col
};

const sequelize = new Sequelize('db', 'user', 'pass', {
   
    host: 'localhost',
    dialect: 'mysql',
    pool: {},

    operatorsAliases: operatorsAliases,  //操作符安全
});
帥到炸 回答

你這個代碼是打錯了嗎?
let [...spraed]=[10,5,8,23,30];
這里這樣用多此一舉
這樣寫的好處是引用類型的第一層會按值復制

//第一層按值賦值 但如果是二層以上還是引用  []
let arr = [10,5];                // 2層 [{name:"li"}]
let [...spraed] = arr;
spraed[0] = 1                    //2層 spraed[0].name = 1 
console.log(arr);//[10,5]          //2層 [{name:1}]
console.log(spraed);//[1,5]      //2層 [{name:1}]
const isX=value=>value==10;

let spraed=[10,5,8,23,30];

let filtered=spraed.filter(isX);

console.log(filtered);

v=>v 箭頭函數(shù) -> function(v){return v};
... 擴展運算符 let a = [a,b,c]; ...a -> a,b,c 所以 [...a] -> [a,b,c]
擴展運算符常用于函數(shù)

function func(a,b,c){console.log(a,b,c)};
func(...[1,2,3]);//1,2,3

function func(...arg){console.log(arg)};
func(1,2,3);//[1,2,3]

//剩余參數(shù)
function func(a,...arg){console.log(a,arg)};
func(1,2,3);//1,[2,3]
離魂曲 回答

Vue 在插入、更新或者移除 DOM 時,提供多種不同方式的應用過渡效果。你可以看下
https://cn.vuejs.org/v2/guide...

另外這種簡單的動畫可以通過控制class來自己實現(xiàn)

喵小咪 回答

你這屬于特殊需求,需要自己靈活改動。
可以采用兩個table,第一個展示表頭和開頭幾行,固定。
第二個table展示其他數(shù)據

心悲涼 回答

會。

不過既然一樣,為什么不用同一個呢?

雅痞 回答

你可以重新再寫一個權重更高的css 覆蓋你引入進來的css樣式