第一步:引入组件 import ComponentTest from './components/ComponentTest.vue'
第二步:挂载组件 components: {ComponentTest }
第三步:显示组件
单文件组件

prop组件交互
单文件组件数据:{{ message }}
- {{ item }}

自定义事件组件交互


创建:brforeCreate、created
渲染:brforeMount、mounted
更新:brforeUpdate、updated
卸载:brforeUnmount、unmounted
组件生命周期
{{ msg }}

Vue CLI v5.0.8
? Please pick a preset: Manually select features
? Check the features needed for your project: (Press to select, to toggle all, to invert selection, and to
proceed)
(*) Babel
( ) TypeScript
(*) Progressive Web App (PWA) Support
( ) Router
>(*) Vuex //vuex选项
( ) CSS Pre-processors
( ) Linter / Formatter
( ) Unit Testing
( ) E2E Testing
// vue-vuex\src\store\index.js
import { createStore } from 'vuex'
export default createStore({
// 所有数据都存放在这里
state: {
counter: 100
}
})
方式一:
{{ $store.state.counter }}
{{ counter }}
对vuex中的数据进行过滤
// vue-vuex\src\store\index.js
import { createStore } from 'vuex'
export default createStore({
// 所有数据都存放在这里
state: {
counter: 100
},
getters: {
getCounter(state) {
return state.counter > 0 ? state.counter : "counter的值小于0"
}
},
mutations: {
},
actions: {
}
})
方式一
{{ $store.getters.getCounter }}
方式二
{{ getCounter }}
// vue-vuex\src\store\index.js
import { createStore } from 'vuex'
export default createStore({
// 所有数据都存放在这里
state: {
counter: 100
},
getters: {
getCounter(state) {
return state.counter > 0 ? state.counter : "counter数据异常"
}
},
mutations: {
addCounter(state, num) {
state.counter += num;
}
},
actions: {
}
})
{{ $store.getters.getCounter }}
方法二
{{ getCounter }}
action提交给mutation,包含异步操作
// vue-vuex\src\store\index.js
import { createStore } from 'vuex'
export default createStore({
// 所有数据都存放在这里
state: {
counter: 100
},
getters: {
getCounter(state) {
return state.counter > 0 ? state.counter : "counter数据异常"
}
},
mutations: {
addCounter(state, num) {
state.counter += num;
}
},
actions: { //为异步操作准备
asyncAddCounter({ commit }) {
commit("addCounter", 30);
}
}
})
方法一
{{ getCounter }}
方式二
{{ getCounter }}