一、遍历对象
v-for = "(value, index) in obj" // 遍历对象
<template>
<ul>
<li :key="key" v-for="(value, key) in obj">{{value}}</li>
</ul>
</template>
<script>
export default {
data(){
return {
obj:{
firstName: "John",
lastName: "Doe",
age: 30
}
}
}
}
</script>
二、操作DOM
this.$nextTick
this.$refs
<template> <div> <p>操作DOM</p> <div ref="test">测试操作DOM</div> </div> </template>
export default {
data(){
return {
}
},
mounted(){
this.$refs.test.innerHTML = "我好高兴!";
}
}
三、transition 动画
<template> <div> <p>过渡效果</p> <button @click="show=!show">Toggle</button> <transition name="fade"> <p v-if="show">Hello World!</p> </transition> </div> </template>
<script>
export default {
data(){
return {
show: false
}
}
}
</script>
<style>
.fade-enter-active,
.fade-leave-active {
transition: opacity 0.5s;
}
.fade-enter,
.fade-leave-to {
opacity: 0;
}
.fade-enter-to {
opacity: 1;
}
</style>
1、隐藏
leave 离开 leave 1--- leave-active ----- leave-to 0
opcity: 1 变到 0
2、显示
enter 进入 enter 0 --- enter-active ------ enter-to 1
opcity: 0 变到 1
四、页面跳转功能
用法1:<router-link to="/demo1">demo1</router-link>
to="{name:‘demo9‘, params:{userId:123}}"
用法2: :to="{name:‘demo9‘,params:{userId:123}}"
用法3:this.$router.push({path:‘/demo1‘});
用法4:this.$router.push({name:‘demo1‘,params:{userId:124}})
五、状态管理Vuex
全局状态管理,所有页面共享数据
设置数据: this.$store.dispatch(‘increment‘,100000);
获取数据:this.$store.state.num;
store 代码
import Vue from ‘vue‘;
import Vuex from ‘vuex‘;
Vue.use(Vuex);
export default new Vuex.Store({
state: {
count: 0,
num: 1
},
mutations: {
increment(state, num) {
state.count++;
state.num = num;
}
},
actions: {
inc({ commit }, obj) {
commit(‘increment‘, obj);
}
}
});
vue 页面
<template>
<div>
<p>状态管理vuex</p>
<div>{{msg}}</div>
<button @click="change">change按钮</button>
</div>
</template>
export default {
data(){
return {
msg : "123"
}
},
methods:{
change(){
// vuex取数据
// this.msg = this.$store.state.count;
// 修改公共数据
this.$store.dispatch("inc", 100000);
this.msg = this.$store.state.num;
}
}
}
六、Slot 插槽
常用于组件调用中
栗子
slot组件
<template>
<div>
<div>测试插槽</div>
<slot></slot>
<p>我是最底部</p>
<slot name="bottom"></slot>
</div>
</template>
vue页面
<template> <div> <p>slot 插槽</p> <mySlot> <div>test-1</div> <p>test-2</p> <p>test-3</p> <div slot="bottom">test-4</div> </mySlot> </div> </template>
<script>
// 引入组件
import mySlot from "../../components/slot";
export default {
data(){
return {
}
},
components:{
mySlot
}
}
</script>
页面输出
slot 插槽
测试插槽
test-1
test-2
test-3
我是最底部
test-4
原文:https://www.cnblogs.com/liushihong21/p/11335974.html