• axios安装及使用

    网站文档地址:https://www.kancloud.cn/yunye/axios/234845
    1.npm安装 cnpm install axios
    2.// 在main.js里面引入axios
    import Axios from 'axios'
    3.// 将axios 挂载到Vue原型上,这样全局的组件都有该方法了
    Vue.prototype.$https = Axios;
    4.// Axios全局配置基本url(当然也可以不配置),配置后后面就直接写之后的url即可,会默认帮你拼接
    Axios.defaults.baseURL = 'https://www.luffycity.com/api/v1/';
    methods:{
    // 获取课程分类
    get_category_list(){
    // 调用axios的get方法获取数据
    this.$https.get('course_sub/category/list/')
    // 这里注意this指向
    .then((response) => {
    // 如果状态正常,则赋值给category_list
    if (response.data.error_no === 0){
    this.category_list = response.data.data
    }
    })
    .catch(function (error) {
    console.log(error)
    })
    }
    },
    created(){
    // 调用课程分类方法
    this.get_category_list()
    }
  • vuex安装和简单使用

vuex中,有默认的五种基本的对象:

state:存储状态(变量)
getters:对数据获取之前的再次编译,可以理解为state的计算属性。我们在组件中使用 $sotre.getters.fun()
mutations:修改状态,并且是同步的。在组件中使用$store.commit('',params)。这个和我们组件中的自定义事件类似。
actions:异步操作。在组件中使用是$store.dispath('')
modules:store的子模块,为了开发大型项目,方便状态管理而使用的。
1.安装vuex    npm i vuex -S
2.可以在src目录下创建一个vuex文件夹,建一个store,js文件

store.js文件

import Vue from 'vue'
import Vuex from 'vuex' // 引入vuex并且使用vuex
Vue.use(Vuex) // 存储变量count
const state = {
count:0
} // mutations 里面放置的是我们操作state对象属性的方法,还属于同步操作
const mutations = {
// mutations里面的参数,第一个默认为state,接下来的为自定义参数
addCount(state, n) {
return (state.count += n)
},
reduceCount(state, n){
return (state.count -= n)
}
}; // actions是异步操作,有两个不同的参数,一个是context,它是一个和store对象具有相同对象属性的参数
const actions = {
actionAddCount(context, n){
return context.commit('addCount',n)
},
actionReduceCount(context, n){
return context.commit('reduceCount',n)
},
}; // 通过Vuex的方法Store返回
export default new Vuex.Store({
state,
mutations,
actions
})

main.js 引入并挂载store

import Vue from 'vue'
import App from './App'
import router from './router'
import store from './vuex/store' // 引入store Vue.config.productionTip = false /* eslint-disable no-new */
new Vue({
el: '#app',
router,
store, // 记得挂载
components: { App },
template: '<App/>'
})

HelloWorld.vue里面

<template>
<div class="hello">
<!--获取count的值-->
<h2>{{ $store.state.count }}</h2>
<div>同步操作
<div>
<button @click='addClick(1)'>增加</button>
<button @click='reduceClick(1)'>减少</button>
</div>
</div>
<div>异步操作
<div>
<button @click='actionAddClick(1)'>异步增加</button>
<button @click='actionReduceClick(1)'>异步减少</button>
</div>
</div>
</div>
</template> <script>
export default {
name: 'HelloWorld',
data () {
return {}
},
methods:{
addClick(n){
// 通过commit方法调用addCount来进行加减n操作
this.$store.commit('addCount',n);
},
reduceClick(n){
this.$store.commit('reduceCount',n);
},
actionAddClick(n){
// 通过dispatch方法调用actionAddCount,然后actionAddCount再通过commit方法调用addCount进行加减
this.$store.dispatch('actionAddCount',n);
},
actionReduceClick(n){
this.$store.dispatch('actionReduceCount',n);
},
}
}
</script> <!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped> </style>

vuex原理图:

Vue快速学习_第五节的更多相关文章

  1. Vue快速学习_第四节

    获取原生的DOM方式($.refs) 给标签或者组件 添加ref <div ref = 'liu'>test</div> <Home ref = 'home'>&l ...

  2. Vue快速学习_第一节

    之前写CRM都是Django前后端一起写的,在大部分项目中实际上前后端是分离的,因此我们需要学习一个前端框架来进行前端页面的编写,这里选择了Vue进行学习,好了开始学习吧. 1.ES6部分知识点学习 ...

  3. Vue快速学习_第二节

    表单输入绑定(v-model) v-model 指令在表单 <input>.<textarea> 及 <select> 元素上创建双向数据绑定(注意只在表单这几个可 ...

  4. Vue快速学习_第三节

    过滤器 局部过滤器(组件内部使用的过滤器,跟django的很像, filters: {过滤器的名字: {function(val, a,b){}}} 全局过滤器(全局过滤器,只要过滤器一创建,在任何组 ...

  5. 学习HTML 第五节.简单交互 加个按钮

    学习HTML 第五节.简单交互 也许你和我一样,对页面排版的兴趣小于网页交互,那么我们就先略过一些章节,直接先学一下简单交互. 前面点击图片打开链接的网址,已经是最简单的交互方式了,复杂的方式则需要用 ...

  6. 风炫安全WEB安全学习第二十五节课 利用XSS键盘记录

    风炫安全WEB安全学习第二十五节课 利用XSS键盘记录 XSS键盘记录 同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源.所以xyz.com下的js脚本采用a ...

  7. android内部培训视频_第五节(1)_OA实战之登录界面

    第五节(1):OA实战之登录界面  一.登录界面布局 1.背景图片 2.文本框 3.checkbox 4.按钮 暂未实现点击切换图片效果 <RelativeLayout xmlns:androi ...

  8. [ExtJS5学习笔记]第五节 使用fontawesome给你的extjs5应用增加字体图标

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/38458411本文作者:sushengmiyan-------------------- ...

  9. Vue(基础四)_总结五种父子组件之间的通信方式

    一.前言 这篇文章主要总结了几种通信方式: 1.方式一:使用props: [ ]和$emit()  (适用于单层通信) 2.方式二:$attrs和$listeners(适用于多层) 3.方式三:中央处 ...

随机推荐

  1. Vue和其他框架的区别

    原文地址 React React 和 Vue 有许多相似之处,它们都有: 使用 Virtual DOM 提供了响应式 (Reactive) 和组件化 (Composable) 的视图组件. 将注意力集 ...

  2. vue父组件如何向子组件中传递数据?

    原文地址 props传参 父组件: <template> <parent> <child :list="list"></child> ...

  3. PTA --- L1-002 打印沙漏

    题目地址 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号:各行符号中心对 ...

  4. python读入txt数据,并转成矩阵

    本文参考:<机器学习算法原理与编程实践>郑捷,第1章第四节 本文程序中使用的txt数据截图如下图.数据链接:https://pan.baidu.com/s/1_Ce6WLGDTWf7qQI ...

  5. 企业场景-网站目录安全权限深度讲解及umask知识

    站点目录的文件和目录给什么权限: 默认权限是安全权限的临界点,工作中尽量给这个临界点,或者小于临界点,不要大于临界点权限. 默认权限分配的命令 umask 在linux下文件的默认权限是由umask值 ...

  6. Excel小技巧(生成数字篇)

    1. 自动生成1-1000: =ROW() 2.随机生成 1-100 : =RANDBETWEEN(1,100) // 若要包含小数点n位,就把(MIN,MAX)改成 (MIN*10^n,MAX*10 ...

  7. 基于模板匹配的目标跟踪(OpenCV)

    基于VS2010+ OpenCV2.代码可以读入视频,也可以读摄像头,两者的选择只需要在代码中稍微修改即可.对于视频来说,运行会先显示第一帧,然后我们用鼠标框选要跟踪的目标,然后跟踪器开始跟踪每一帧. ...

  8. hdoj2196(树形dp,树的直径)

    题目链接:https://vjudge.net/problem/HDU-2196 题意:给出一棵树,求每个结点可以到达的最远距离. 思路: 如果求得是树上最长距离,两次bfs就行.但这里求的是所有点的 ...

  9. [bzoj3887][Usaco2015 Jan]Grass Cownoisseur_trajan_拓扑排序_拓扑序dp

    [Usaco2015 Jan]Grass Cownoisseur 题目大意:给一个有向图,然后选一条路径起点终点都为1的路径出来,有一次机会可以沿某条边逆方向走,问最多有多少个点可以被经过?(一个点在 ...

  10. python类学习

    创建关于汽车的类 class Cars(): def __init__(self, brand, country): self.brand = brand self.country = country ...