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

鍍金池/ 問(wèn)答/ HTML問(wèn)答
我解釋一下上面關(guān)于computed的評(píng)論吧

Vue是響應(yīng)式的,這就意味著一個(gè)好的設(shè)計(jì)模式是只保存源數(shù)據(jù),進(jìn)一步的變換交給框架。換言之,就是不增加沒(méi)有必要的狀態(tài)。所以我的建議是把datafilter放到computed里面。

{
    data() {
        return {
            datalist: [],
            // filter就應(yīng)該存filter,如果按原來(lái)的邏輯,應(yīng)該叫filteredDataList
            // 其實(shí)我更喜歡selectedDate,更加明確
            // datafilter: null,
            selectedDate: null,
        }
    },

    computed: {
        filteredDatalist() {
            if (this.selectedDate) {
                return this.datalist.filter(({ recoverTime }) => recoverTime === this.selectedDate);
            }
            else {
                return this.datalist;
            }
        }
    },

    methods: {
        getData() {
            this.$get('接口地址', 請(qǐng)求參數(shù))
                .then(response => {
                    this.datalist = response
                })
                .catch(error => {
                });
        },

        clickDay(date) {
            var a = date.split('/');
            // 用樓上的方式更優(yōu)雅一些
            this.selectedDate = a[0] + '-' + (a[1] < 10 ? '0' : '') + a[1] + '-' + (a[2] < 10 ? '0' : '') + a[2];
        },
    },
}

好處都有啥?誰(shuí)說(shuō)對(duì)了就給他

  1. 解開(kāi)了計(jì)算過(guò)程和點(diǎn)擊按鈕的耦合。假如以后想要加上前一天/后一天的功能,只需要寫(xiě)日期加減本身的代碼,不用再?gòu)?fù)制粘貼計(jì)算過(guò)程了;
  2. 解開(kāi)了datalist生命周期的限制。假如以后想要加上datalist實(shí)時(shí)更新的功能,只需要定時(shí)getData就行了(或者用websocket,不論是啥),不需要用戶觸發(fā)clickDay就能自動(dòng)刷新;
  3. Vue會(huì)智能地管理computed屬性的緩存,如果用戶clickDay兩次都相同,只會(huì)計(jì)算一次。

其實(shí)這種思想已經(jīng)很函數(shù)式了,相當(dāng)像Rx。但是Vue的學(xué)習(xí)成本比Rx低得多,這么簡(jiǎn)單就能用上函數(shù)式,何樂(lè)不為?

拽很帥 回答

兼容性好的話

var obj = {
    "1": [111, 222],
    "2": [333],
    "3": [444, 555]
};
var arr = [];
for(var i in obj){
    arr.push(...obj[i]);
}
console.log(arr);

或者

var obj = {
    "1": [111, 222],
    "2": [333],
    "3": [444, 555]
};
var arr = [];
for(var i in obj){
    for(var j in obj[i]){
        arr.push(obj[i][j]);
    }    
}
console.log(arr);
var arr = [];
for(var i in obj){
    arr=arr.concat(obj[i]);
}
console.log(arr);

rxjs很適合這樣的場(chǎng)景,了解一下

誮惜顏 回答

圖片沒(méi)加載出來(lái)了,請(qǐng)重新上傳

神曲 回答

on這些方法都是繼承自emitter,所以試試

function callback(data) {
    console.log(bbb)
}
sensorConnect.on('data', callback)
sensorConnect.removeListener('data', callback)

我查的是node 7.X, 可以瞧瞧你node版本的文檔

默念 回答

這是之前寫(xiě)的返回頂部的組件,就是在 componentDidMount 里監(jiān)聽(tīng) window scroll 事件。
https://github.com/BaoXuebin/xdbin-react-app/blob/master/src/app/components/BackTop.jsx

這里分享一個(gè)之前遇到的坑吧。因?yàn)榉祷仨敳窟@個(gè)組件基本每個(gè)頁(yè)面都會(huì)用到,而一個(gè)頁(yè)面里對(duì) window scroll 事件的處理有可能不止一個(gè)。如果每個(gè)組件里都寫(xiě)如下代碼:

componentDidMount() {
    window.onscroll = () => {
        // ...
    };
}

則肯定會(huì)覆蓋原有的 window.onscroll 方法。所以正確的處理應(yīng)該是延續(xù) onscroll 事件的冒泡執(zhí)行。

componentDidMount() {
    window.onscroll = () => {
        if (window.onscroll) {
            window.onscroll();
        }
        // ...
    };
}
網(wǎng)妓 回答

1.這就是函數(shù)式組件,沒(méi)有生命周期的純組件,繼承components的組件有生命周期和內(nèi)部的state
2.components和containers都是react的組件,只不過(guò)這里的components一般指純組件,就是沒(méi)有內(nèi)部state。頁(yè)面展示的數(shù)據(jù)都是來(lái)源于父組件,也就是containers組件,containers會(huì)處理復(fù)雜的邏輯和數(shù)據(jù)處理,通過(guò)props把數(shù)據(jù)傳遞給子組件。一個(gè)簡(jiǎn)單的例子。一個(gè)展示todolist的組件的containers負(fù)責(zé)通過(guò)ajax拿到todolist。傳遞給純展示的components組件

1.放在created里面
或者
2.在beforeRouteEntercommit數(shù)據(jù)給state

雨萌萌 回答
  1. iframe引入
  2. ajax引入html再寫(xiě)到頁(yè)面上
  3. 各大單頁(yè)應(yīng)用框架 vue react angular。然后還有一些引入資源的框架呀啥的
筱饞貓 回答

創(chuàng)建的時(shí)候存?zhèn)€cookie,每次創(chuàng)建之前判斷一下,是不是我想得太簡(jiǎn)單了……

兮顏 回答

字符串轉(zhuǎn)成number?

冷咖啡 回答

你想學(xué)習(xí)這兩種模式,你得知道這兩種模式是什么,這兩年最火的莫過(guò)于vue.js了,在mvvm中,沒(méi)有dom這一概念,所有的交互都是通過(guò)控制來(lái)實(shí)現(xiàn)的。想學(xué)習(xí)這個(gè),首先得摸熟原生js,其次你得擺脫jquery的束縛,因?yàn)関ue.js是完全不用jquery的。
如果非要說(shuō)其它語(yǔ)言的話,你得看看es6,別的就不用了,當(dāng)然前提是html5,css3,原生js都得會(huì)的情況下。
不用看什么書(shū)籍,你去把官方文檔打一遍,然后看看慕課網(wǎng)上的教程。構(gòu)思的話,你從數(shù)據(jù)入手,不要想著操作dom,也就是操作html里面的內(nèi)容,雙向綁定的東西,html跟著數(shù)據(jù)走的。
模板視圖控制器是相輔相成的,一個(gè)界面的組成肯定要有視圖,然后你用控制器控制,然后制成模板然后調(diào)用,你說(shuō)的mvc走的就是這個(gè)流程。

亮瞎她 回答

這個(gè)問(wèn)題就是函數(shù)回調(diào)的問(wèn)題。你為什么要搞路由嵌套呢?這樣兩次請(qǐng)求的req和res都是不同的,加上javascript回調(diào)函數(shù)的調(diào)用機(jī)制,sql變量也會(huì)出現(xiàn)交疊的情況。

心夠野 回答

代碼全一點(diǎn)兒

情已空 回答

你這個(gè)應(yīng)該扔豬八戒 或者其他外包網(wǎng)站實(shí)在點(diǎn)

久舊酒 回答

你安裝的依賴一直都在 node_modules 里面, package.json 只是記錄你項(xiàng)目有哪些依賴. 如果依賴是生產(chǎn)環(huán)境需要,本地開(kāi)發(fā)也需要, 那你最好是記錄在 dependencies 里, 確保用戶利益為主. 不管你記錄在 dependencies 還是 devDependencies , 在執(zhí)行 npm install 的時(shí)候這些依賴都會(huì)被下載到 node_modules 里, 在使用過(guò)程中是沒(méi)有任何區(qū)別的.

不二心 回答

NUXT SEO

nuxt.js中添加統(tǒng)計(jì)代碼,添加百度統(tǒng)計(jì),或者google的統(tǒng)計(jì)

添加百度統(tǒng)計(jì)
在 plugins 目錄下創(chuàng)建 plugins/baiduGa.js 文件
plugins/baiduGa.js
export default ({app: {router}, store}) => {
  /* 每次路由變更時(shí)進(jìn)行pv統(tǒng)計(jì) */
  router.afterEach((to, from) => {
    /* 告訴增加一個(gè)PV */
    try {
      window._hmt = window._hmt || []
      window._hmt.push(['_trackPageview', to.fullPath])
    } catch (e) {
    }
  })
}
然后,我們需要告訴 Nuxt.js 將該插件導(dǎo)入主應(yīng)用中,在nuxt.config.js配置如下
nuxt.config.js
head: {
    script: [
     {src: 'https://#/hm.js?****'}, /*引入百度統(tǒng)計(jì)的js*/
    ]
},
plugins: [
   '@/plugins/ga.js', /*百度統(tǒng)計(jì)*/
]


添加google統(tǒng)計(jì) 官方
https://zh.nuxtjs.org/faq/goo...


from https://github.com/WangShuXia...
夕顏 回答

80端口不行但是8080端口可以,你要檢查端口沖突或者檢查配置文件(nginx.conf和其他的conf文件)。
另外,你的servername在哪里?

獨(dú)白 回答

兄弟,你定義了2個(gè)bigFish module。
angular.module函數(shù)為2個(gè)參數(shù)時(shí)就是創(chuàng)建一個(gè)模塊了。

給你一個(gè)輪子:Element-angular。
他們的做法是:

 upload(path: string, file: File): Observable<any> {
    const req: HttpRequest<{}> = new HttpRequest('POST', path, file, {
      headers: this.headers,
      reportProgress: true,
      withCredentials: this.withCredentials,
    })
    return this.http.request(req)
  }

直接傳文件,并未做過(guò)多的處理。