【vuex】一.vue.js的基本指令;二.vue.js全家桶开发;三.vuex

news2024/12/26 11:38:07

目录

一.vue.js的基本指令

1.Vue的作用:快速的构建前端页面(封装了html、css、js),以工程化的方式进行前端的开发

2.Vue的核心:

(1)组件化:

(2)数据的双向绑定

(3)插槽

3.基本指令

(1)插值表达式:{{}}

(2)v-for:循环指令

(3)v-if:条件指令

(4)v-show:显示指令

(5)v-bind:绑定指令(可以给属性绑定变量)。简写为::属性名

(6)v-model:表单控件的双向绑定

(7)v-on:事件绑定。简写为: @事件名

4.基本的流程

(1)在html页面中导入vue.js库文件

(2)在html页面中定义一个容器(如div),作为vue实例的挂载点

(3)在js中创建vue实例,通过实例的el属性与html页面中容器进行绑定

二.vue.js全家桶开发

1.vue-cil脚手架的作用:快速搭建vue项目

2.vue-router:vue的路由

(1)导航式路由:

(2)编程式路由:this.$router.push('url')

3.axios的使用:

(1)封装了ajax:将后台数据封装在data属性中

(2)axios进行二次封装:对请求数据和响应数据进行拦截、对各种请求进行封装

4.Element-ui:ui组件库,快速的构建风格统一的页面

5.Echars:数据可视化

6.组件之间的通信:

(1)父子组件:

(2)兄弟组件:

(3)跨级组件:

三.vuex

1.什么是vuex:

2.vuex的工作方式:

(1)在全局中定义一个state:state本质是一个对象,该对象的属性就是vue组件用到的变量(所有组件共享这些变量)

(2)在vue组件中若要更新state的值,必须通过mutation来进行(只能通过mutation去改变state的状态),只能同步修改(即mutation中的方法都是同步的)

(3)若要异步的修改state的值,需要通过action来进行(action不能直接修改state,但是它可以向mutation发起请求,由mutation来修改state的值,可以在action中定义异步方法)

3.vuex的使用场景:

(1)不适合:小型的简单应用

(2)适合:大型的单页面应用

4.工作流程:View ---> Actions ---> Mutations ---> State ---> View

5.vuex的核心API:

(1)state:

(2)mutations

(3)actions:通过actions去触发mutations中的方法,实现对state的异步修改

(4)getters:用于获取state的属性值。类似于state的计算属性

(5)modules:在大型项目中用于管理多个子模块的state

6.应用

(1)安装vuex

(2)定义vuex的store(仓库)

(3)在main.js中进行配置

7.示例:通过vuex实现一个计数器(实现异步、同步的数据改变)

8.强调:

9.vuex的工作流程

(1)在组件中通过commit直接向mutations提交修改state的请求,或者通过dispatch向actions派发请求

(2)mutations通过接收到的请求去修改state的状态

(3)当state的状态发生改变后,组件通过计算属性(computed)获取改变后state,刷新组件


一.vue.js的基本指令

1.Vue的作用:快速的构建前端页面(封装了html、css、js),以工程化的方式进行前端的开发

2.Vue的核心:

(1)组件化:

(2)数据的双向绑定

(3)插槽

3.基本指令

(1)插值表达式:{{}}

(2)v-for:循环指令

(3)v-if:条件指令

(4)v-show:显示指令

(5)v-bind:绑定指令(可以给属性绑定变量)。简写为::属性名

(6)v-model:表单控件的双向绑定

(7)v-on:事件绑定。简写为: @事件名

4.基本的流程

(1)在html页面中导入vue.js库文件

(2)在html页面中定义一个容器(如div),作为vue实例的挂载点

(3)在js中创建vue实例,通过实例的el属性与html页面中容器进行绑定

        const vm = new Vue({

                el:'#id值/.class值',

                data(){},

                methods:{},

                computed:{},

                watch:{},

                filter:{}

        })

二.vue.js全家桶开发

1.vue-cil脚手架的作用:快速搭建vue项目

2.vue-router:vue的路由

(1)导航式路由:<router-link to="url"></router-link>

(2)编程式路由:this.$router.push('url')

3.axios的使用:

(1)封装了ajax:将后台数据封装在data属性中

(2)axios进行二次封装:对请求数据和响应数据进行拦截、对各种请求进行封装

4.Element-ui:ui组件库,快速的构建风格统一的页面

5.Echars:数据可视化

6.组件之间的通信:

(1)父子组件:

(2)兄弟组件:

(3)跨级组件:

三.vuex

1.什么是vuex:

        是vue项目的状态管理器(状态管理工具)。vue项目的状态是通过vue实例(组件)绑定的变量来体现。所以也可以说vuex是用来管理vue项目中的变量(vue项目中的组件可以访问vuex中管理的变量---方便了组建的通信)。

2.vuex的工作方式:

(1)在全局中定义一个state:state本质是一个对象,该对象的属性就是vue组件用到的变量(所有组件共享这些变量)

(2)在vue组件中若要更新state的值,必须通过mutation来进行(只能通过mutation去改变state的状态),只能同步修改(即mutation中的方法都是同步的)

(3)若要异步的修改state的值,需要通过action来进行(action不能直接修改state,但是它可以向mutation发起请求,由mutation来修改state的值,可以在action中定义异步方法)

3.vuex的使用场景:

(1)不适合:小型的简单应用

(2)适合:大型的单页面应用

        A.多个视图(组件)依赖同一个状态

        B.不同的视图的行为需要改变同一个状态

4.工作流程:View ---> Actions ---> Mutations ---> State ---> View

5.vuex的核心API:

(1)state:

        A.必须是唯一的

        B.本质是一个对象,维护的是vue的状态

                const state = {

                        属性名:初始化值

                }

                或

                state:{

                        属性名:初始化值

                }

(2)mutations

        A.作用:用来修改state

        B.定义了多个用于修改state的方法

        C.只能包含同步代码

        D.定义方式:

                const mutations = {

                       方法名1(state,[data]){

                                //更改state的属性值

                        },

                        方法名2(state,[data]){

                                //更改state的属性值

                        }

                }

        E.触发方式:

                a.在actions中通过commit('mutations的方法名')实现触发

                b.在组件中通过this.$store.commit('方法名',params)实现触发

(3)actions:通过actions去触发mutations中的方法,实现对state的异步修改

        A.可以包含异步代码

        B.通过commit触发mutations来间接修改state

        C.触发方式(如何触发actions):在组件中通过this.$store.dispath('action名称',data1)进行触发

        D.定义方法:

                const actions = {

                        方法名({commit,state},data1){

                                commit('mtations中的方法名')

                        }

                }

(4)getters:用于获取state的属性值。类似于state的计算属性

        A.定义方法

                const getters = {

                        方法名([参数]){

                                return state.属性名

                        }

                }

        B.在组件中的使用方法:this.$store.getters.方法名

(5)modules:在大型项目中用于管理多个子模块的state

6.应用

版本:vuex3对应vue2,vuex4对应vue3

(1)安装vuex

npm install vuex@3        或        npm i vuex@3 -S

(2)定义vuex的store(仓库)

        A.src/store/store.js

        B.导入vue和vuex

                import Vue from 'vue';

                import Vuex from "vuex";

import Vue from 'vue';
import Vuex from "vuex";

//全局注册vuex
Vue.use(Vuex)

//定义全局的store:即定义全局的状态管理器(数据仓库)
export default new Vuex.Store({
    //定义状态属性并初始化
    state:{

    },
    //定义获取状态属性值的方法
    getters:{

    },
    //定义修改状态属性值的方法
    mutations:{

    },
    //定义异步修改状态属性值的方法
    actions:{

    },
    //整合子store
    modules:{
        
    }
})

(3)在main.js中进行配置

import Vue from 'vue'
import App from './App.vue'

//导入vuex的配置文件
import store from "@/store/store";


//在vuex实例中引用
new Vue({
  store,
  render: function (h) { return h(App) },
}).$mount('#app')

7.示例:通过vuex实现一个计数器(实现异步、同步的数据改变)

8.强调:

        A.在组件中触发mutations中定义的方法:

                this.$store.commit('mutations中定义的方法名',参数)

        B.在组件中触发actions中定义的方法:触发异步方法

                this.$store.dispath('actions中定义的方法名')

        C.获取state中属性值的方法:

                a.直接获取:this.$store.state.属性名

                b.通过getters:this.$store.getters.属性名

        D.在定义vuex的store实例时,不能使用this

9.vuex的工作流程

(1)在组件中通过commit直接向mutations提交修改state的请求,或者通过dispatch向actions派发请求

(2)mutations通过接收到的请求去修改state的状态

(3)当state的状态发生改变后,组件通过计算属性(computed)获取改变后state,刷新组件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/186747.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

shell执行脚本的方法及环境变量

执行脚本的方法 &#xff08;1&#xff09;bash ./filename.sh&#xff08;产生子进程&#xff0c;再运行&#xff0c;使用当前指定的bash shell去运行&#xff09; &#xff08;2&#xff09;./filename.sh&#xff08;产生子进程&#xff0c;再运行&#xff0c;使用脚本里面指…

vue3 手撕日历控件

vue制作日历控件 效果如下&#xff1a; <template><div class"cal_con" style"margin-left:200px"><div class"cal_header"><!-- 顶部左侧 --><div class"cal_header_left"><div class"cal_he…

STL分析(十 hash、function type_traits、cout、move )

hash function 假定存在一个Customer类 class Customer{ public:string fname, lname;int no; };其哈希函数存在三种方式 //方式一&#xff1a;创建可调用类型 class CustomerHash { public:std::size_t operator()(const Customer& c) const{return ......} };unordere…

Android 签名基础知识

目录Android 为什么要签名keystore的生成&#xff1a;keystore信息的查看参数说明&#xff1a;Android 怎么签名使用 jarsigner 签名如何查找 jdk 位置签名时遇到的问题查看 apk 是否签名查看 Apk 的MD5值以及MD5不显示时的解决办法缺少 xx.RSA 文件的原因V1 vs V2Android 为什…

Coolify系列-解决局域网主机突然连不了虚拟机

开始之前&#xff0c;我们需要确保配置一切正常&#xff0c;原始配置参考下文 Coolify系列-手把手教学解决局域网局域网中的其他主机访问虚拟机以及docker服务 如果是之前已经配置好的&#xff0c;突然无法访问了&#xff0c;采取以下方式进行排查操作 在虚拟机执行 ifconf…

【GD32F427开发板试用】基于蓝牙的远程步进电机控制

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;寒冰1988 一、前言 接上篇文章【GD32F427开发板试用】基于蓝牙模块的远程点灯演示&#xff0c;本篇是第二篇&#xff0c;基于调通的蓝牙模块添…

Pytest-Allure测试报告

Allure 模块下载 pip install allure-pytest包下载 https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/此处我选择下载最新的&#xff0c;版本上可以选择不是最新的&#xff0c;2.9.0的。下载zip或者tgz后缀格式的都可以。 配置环境变量 找到解压…

RPA自动办公01——Uibot的安装和基础用法

本期开始RPA的学习流程。 RPA是机器人自动化流程的简写&#xff0c;目的在于减少重复性的劳动&#xff0c;而且上手很简单&#xff0c;无需编程就能用。 本系列使用Uibot 软件&#xff0c;其下载地址在&#xff1a;来也科技流程创造者&#xff08;UiBot Creator&#xff09; …

searchableSelect 插件使用

<script type"text/javascript" src"//searchableSelect.js"></script> <script>function getUserServer() {var _this 自定义封装接口请求、弹窗等方法;_this.getAjax("get","//xxxxx/server", {}, function(res)…

前端异常监控平台Sentry安装配置使用及问题

前言&#xff1a;Sentry是一款开源的异常监控平台,支持各种语言的SDK&#xff0c;通过对应SDK可以收集错误信息和性能数据&#xff0c;并可以再后台web页面中查看相关信息。官方地址&#xff1a;安装说明&#xff1a;https://develop.sentry.dev/self-hosted/后台使用说明&…

1.1计算机组成结构:CPU组成、冯·诺依曼结构与哈佛结构、嵌入式芯片术语

1.1计算机组成结构&#xff1a;CPU组成、冯诺依曼结构与哈佛结构、嵌入式芯片术语计算机组成结构CPU组成运算器控制器冯诺依曼结构与哈佛结构冯诺依曼结构哈佛结构嵌入式——芯片术语计算机组成结构 CPU组成 CPU分成两个部分&#xff0c;包括运算器和控制器。 CPU是计算机中核…

Linux之环境搭建

目录 一、VMware 二、centos7的安装 三、Mysql安装 四、 前端项目部署 1.确保前台项目能用 2.将前台项目打包npm run build 3.做ip/host主机映射 4.完成Nginx动静分离的default.conf的相关配置 5.将前端构件号的dist项目&#xff0c;上传到云服务器/usr/local/... …

[Swift]SDK开发

本文主要介绍使用swift语言制作framework Demo:https://github.com/Gamin-fzym/CMSDK 一、创建工程 1.创建目录 这里我创建了一个“CMSDK”目录 2.打开Xcode新建workspace放入CMSDK目录 这里命名为“CMSDK” 3.打开CMSDK.xcworkspace新建SDK工程放入CMSDK目录 这里还是命…

06 CSS-盒子模型【尚硅谷JavaWeb教程】

06 CSS-盒子模型【尚硅谷JavaWeb教程】 JAVAWEB的学习笔记 学习视频来自&#xff1a;https://www.bilibili.com/video/BV1AS4y177xJ/?vd_source75dce036dc8244310435eaf03de4e330 不同的浏览器导致前端展示页面不一样&#xff0c;盒子的大小的不同。&#xff08;所以前端要考虑…

奇迹mu开服教程

奇迹mu开服教程&#xff1a;开服服务端的架设及开服注意事项服务器推荐奇迹开服需要准备什么&#xff1f;开服大概成本分析奇迹MU商业服务端版本&#xff1a;1.02W、1.03H、1.03K、S6EP3、S7EP2、S9EP2&#xff1b;HE网站系统&#xff1a;绑定域名授权&#xff0c;功能可定制&a…

Jenkins部署项目一(物理机器部署SpringBoot项目)

一、Jenkins部署SpringBoot项目 设备&#xff1a;MacOS 准备工作 1.已安装java开发工具包JDK 2.已安装依赖管理工具Maven 3.已安装代码版本控制工具Git 4.已安装Jenkins learn-moon代码地址&#xff1a;https://github.com/BillDavidup/learn-moon SSH: gitgithub.com:Bil…

【学Vue就跟玩一样】如何使用集中式状态管理的Vuex以及如何模块化编码+命名空间

1.vuex是什么一个专门在Vue中实现集中式状态管理的一个Vue插件,可以对vue应用中多个组件的共享状态进行集中式的管理(读取/写入)&#xff0c;也是一种组件间通信的方式&#xff0c;并且适用于任意组件间通信2.什么时候使用Vuex1.多个组件依赖于同一状态2.来自不同组件的行为需要…

Goland入门指南(使用Goland创建并运行项目)

在文章《Goland下载和安装》详细介绍了 Goland 的安装和破解&#xff0c;本节我们来介绍一下怎么使用 Goland 来创建并运行一个项目。 创建项目 首先&#xff0c;在“文件”菜单中找到“New”&#xff0c;并在下一级菜单中选择“Project”来创建一个新项目。 为项目选择一个…

【vim】C语言代码提示

前言 常见的C语言提示插件是YouCompleteMe&#xff0c;这个插件安装比较麻烦&#xff0c;在这推荐一款coc.nvim这个插件&#xff0c;github仓库地址&#xff1a;https://github.com/neoclide/coc.nvim/ 下面是安装步骤。 一、安装 nodejs 1、终端命令安装 curl -sL instal…

SpringMVC DispatcherServlet源码(2) 扫描Controller创建HandlerMapping流程

Spring MVC向容器注册一个RequestMappingInfoHandlerMapping组件&#xff0c;他会扫描容器中的Controller组件&#xff0c;创建RequestMappingInfo并注册HandlerMethod映射关系。 本文将阅读Spring MVC源码分析上述流程。 RequestMappingHandlerMapping组件 Creates Request…