vue技術 鮮為人知的小技巧

2021-09-14 06:32:04 字數 1950 閱讀 1123

一、善用watch的immediate屬性

這一點我在專案中也是這麼寫的。例如有請求需要再也沒初始化的時候就執行一次,然後監聽他的變化,很多人這麼寫:

created(),

watch:

}

上面的這種寫法我們可以完全如下寫:

watch: 

}

二、精簡vuex的modules引入

對於vuex,我們輸出store如下寫:

import auth from './modules/auth'

import posts from './modules/posts'

import comments from './modules/comments'

// ...

export default new vuex.store(

})

要引入好多modules,然後再註冊到vuex.store中~~

精簡的做法和上面類似,也是運用 require.context()讀取檔案,**如下:

import camelcase from 'lodash/camelcase'

const requiremodule = require.context('.', false, /\.js$/)

const modules = {}

requiremodule.keys().foreach(filename =>

})export default modules

這樣我們只需如下**就可以了:

import modules from './modules'

export default new vuex.store()

三、唯一元件根元素

場景如下:

(emitted value instead of an instance of error)

error compiling template:

-component template should contain exactly one root element.

if you are using v-if on multiple elements, use v-else-if

to chain them instead.

模板中div只能有乙個,不能如上面那麼平行2個div。

例如如下**:

}   

會報錯!

我們可以用render函式來渲染

functional: true,

render(h, )

)}

四、元件包裝、事件屬性穿透問題

當我們寫元件的時候,通常我們都需要從父元件傳遞一系列的props到子元件,同時父元件監聽子元件emit過來的一系列事件。舉例子:

//父元件

//子元件}

//前端全棧學習交流圈:

//面向1-3經驗年前端開發人員

//幫助突破技術瓶頸,提公升思維能力

這樣寫很不精簡,很多屬性和事件都是手動定義的,我們可以如下寫:

computed: 

}}

$attrs包含了父作用域中不作為 prop 被識別 (且獲取) 的特性繫結 (class 和 style 除外)。當乙個元件沒有宣告任何 prop 時,這裡會包含所有父作用域的繫結,並且可以通過 v-bind="$attrs" 傳入內部元件。

$listeners包含了父作用域中的 (不含 .native 修飾器的) v-on 事件***。它可以通過 v-on="$listeners" 傳入內部元件。

鮮為人知的 Python 語法

所有人 好吧,不是所有人 都知道 python 是一門用途廣泛 易讀 而且容易入門的程式語言。但同時 python 語法也允許我們做一些很奇怪的事情。眾所周知 python 的 lambda 表示式不支援多行 但是可以模擬出多行 的效果。def f x string if x.endswith g ...

C 鮮為人知的符號

目錄 1 1.引言 1 2.少為人知的符號表1 1 2.1.符號表 1 2.2.示例 2 3.少為人知的符號表2 2 3.1.符號表 2 3.2.示例 3 這些鮮為人知的c 符號,可直接在 中使用,但實踐中不推薦這麼做,可作為茶餘飯後的樂趣了解c 的另一面。雖然它們鮮為人知,但卻不是gnu g 獨有...

parseInt鮮為人知的用法

var float num 3.14 float num parseint float num console.log float num var str num 3.14string str num parseint str num console.log str num 注意 parseint轉...