[toc]
### 组件中的数据以及监听事件
#### 1. data
data 中的数据需要 return,用 {{ words }} 渲染到页面
```js
data() {
return {
words: [],
hotcities: [],
cities: [],
};
}
```
#### 2. computed
computed 计算属性会 return 出一个数据出来,也可以用 {{ letter }} 直接渲染到页面
计算属性用函数 return 的方式,可以操作数据的计算以及变化
```js
computed: {
letter() {
return this.$store.state.letter;
}
}
```
#### 3. watch
watch 可以监听 data 以及 computed 中数据的变化,并且提供两个参数,newVal 和 oldVal
```js
watch: {
letter(newVal, oldVal) {
// console.log(newVal);
var element = this.$refs[newVal][0];
this.scroll.scrollToElement(element, 300);
}
}
```
### Vuex 中的数据以及事件
#### 1. state
state 中用来存储公共数据,在组件中,通过 this.$store.state.count 访问,或者 {{ $store.state.count }}
```js
state: {
count: 0, // 如果组件想要访问 state 的数据,需要 this.$store.state.*** 访问
}
```
#### 2. mutations (行为)
mutations 用来操作 state 里面存储数据的方法,它接受两个参数,固定参数 state 和 接受的参数
子组件只有触发 mutations 中的方法,才可以改变 state 中的值
组件使用this.$store.commit('方法名', 参数)触发store中的方法
```js
mutations: {
changeLetter(state, letter) {
// console.log(letter);
this.state.letter = letter;
}
}
```
#### 3. actions (派发行为)
Action 类似于 mutation,不同在于:
* Action 提交的是 mutation,而不是直接变更状态。
* Action 可以包含任意异步操作。
* 接受两个参数,context 和 传递给 mutations 中事件的 参数
```js
actions: {
changeLetter(context, letter) {
context.commit('changeLetter', letter);
// console.log(letter);
}
}
```
#### 4. getters (计算属性)
getters 类似与组件中的计算属性,接受(state, 传参),return 出一个处理过的数据,可以直接通过 {{ $store.getters.newLetter }} 渲染到页面,或者 this.$store.getters.newLetter 直接读取
```js
getters: {
newLetter(state) {
return state.letter + 'a';
}
// newLetter: function(state) {
// return state.letter;
// }
}
```
- 0. MVC和MVVM
- 1. v-model无法实时更新的解决办法
- 1. Vue 指令
- 1. v-cloak&v-text&v-html
- 2. v-bind
- 3. v-model
- 7. v-for指令的几种使用方式
- 8. v-if和v-show的使用
- 2. 事件修饰符
- 3. 通过属性设置样式
- 1. 通过属性绑定设置元素class
- 2. 通过属性绑定设置元素style
- 4. 自定义指令
- 11. 自定义全局指令
- 12. 自定义私有指令
- 5. 过滤器
- 6. 键盘指令
- 7. 生命周期
- 8. vue-resource
- 9. 动画
- 1. 使用过渡类名实现动画
- 2. 使用animate.css实现动画
- 3. 钩子函数实现小球半场动画
- 10. 组件
- 1. 全局组件的创建方式
- 2. 私有组件的创建方式
- 3. 组件中的data和methods
- 4. component元素
- 5. 组件配合transition元素实现动画
- 6. 父组件传参传方法
- 11. 路由
- 1. 什么是路由
- 2. vue-router的使用
- 3. 使用router-link&query方式传递参数
- 4. 使用param传值
- 5. 使用children属性实现路由嵌套
- 6. router-view之间获取父级data
- 7. 实现路由跳转的几种方式
- 12. 设置缓存
- 13. $ref 操作DOM&获取自定义属性
- 14. 初始化一个项目
- 15. 使用并封装一个axios方法
- 17. vuex
- 18. watch 监听 data数据
- 19. keep alive 缓存路由组件
- vue效果实现
- 1. 实现顶部根据滑动渐隐渐现
- 2. 制作一个动画包裹组件
- 20. vue 中的数据类操作
- 第三方工具&ui
- 1. vant-ui
- 1. 上拉加载更多
- 2. 使用图片预加载
- 2. better-scroll
- 1. 实现上下滑动效果
- 2. 实现两栏式点击滑动跳转
- vue3
- compositionApi
- 2. ref 和 reactive
- 4. watch
- 5. watchEffect
- 7.使用ref操作dom
- effect副作用
- 1. 新特性
- 3. 生命周期
- 6.定义props
- 实现自定义组件v-model
- vue面试题
- 1.对mvvm的理解
- 2.vue2和vue3响应式数据的理解
- 3.vue中如何检测数组的变化
- 4.vue中如何进行依赖收集
- 5.如何理解vue中的模板编译原理
- 6.vue生命周期以及原理
- 7.vue组件data为什么必须是个函数
- 8.vue-router原理
- 9.vue.mixin原理
- 10.$nextTick原理
- 11.computed和watch的区别
- vue SSR服务端渲染
- 1.什么是服务端渲染
- 2.快速创建服务端渲染