<div v-show="isVisible">Content</div>
<div v-if="isLoggedIn">User Panel</div>
computed: {
filteredList() {
return this.list.filter(item => item.active)
}
}
methods: {
filteredList() {
return this.list.filter(item => item.active)
}
}
<div v-for="item in items" :key="item.id">
{{ item.name }}
</div>
<li v-for="user in users" v-if="user.isActive" :key="user.id">
{{ user.name }}
</li>
<li v-for="user in activeUsers" :key="user.id">
{{ user.name }}
</li>
computed: {
activeUsers() {
return this.users.filter(user => user.isActive)
}
}
created() {
this.timer = setInterval(() => {}, 1000)
window.addEventListener('resize', this.handleResize)
},
beforeDestroy() {
clearInterval(this.timer)
window.removeEventListener('resize', this.handleResize)
}
Vue.use(VueLazyload, {
preLoad: 1.3,
loading: 'loading.gif',
error: 'error.gif'
})
<img v-lazy="imageUrl" />
const Foo = () => import('./Foo.vue')
const router = new VueRouter({
routes: [
{ path: '/foo', component: Foo }
]
})
import ElementUI from 'element-ui'
Vue.use(ElementUI)
import { Button, Select } from 'element-ui'
Vue.component(Button.name, Button)
Vue.component(Select.name, Select)
module.exports = {
configureWebpack: {
optimization: {
splitChunks: {
chunks: 'all',
cacheGroups: {
libs: {
name: 'chunk-libs',
test: /[\\/]node_modules[\\/]/,
priority: 10,
chunks: 'initial'
},
elementUI: {
name: 'chunk-elementUI',
priority: 20,
test: /[\\/]node_modules[\\/]_?element-ui(.*)/
}
}
}
}
}
}
const TerserPlugin = require('terser-webpack-plugin')
module.exports = {
configureWebpack: {
optimization: {
minimizer: [
new TerserPlugin({
terserOptions: {
compress: {
drop_console: true
}
}
})
]
}
}
}
module.exports = {
configureWebpack: {
externals: {
vue: 'Vue',
'vue-router': 'VueRouter',
vuex: 'Vuex',
axios: 'axios'
}
}
}
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min.js"></script>
data() {
return {
largeList: Object.freeze([...])
}
}
export default {
functional: true,
props: ['item'],
render(h, context) {
return h('div', context.props.item.name)
}
}
<keep-alive :include="['ComponentA', 'ComponentB']">
<router-view></router-view>
</keep-alive>
<virtual-list
:size="40"
:remain="8"
:bench="10"
>
<item
v-for="item in items"
:key="item.id"
:item="item"
/>
</virtual-list>