vue基本相关笔记

本文介绍了在Vue项目中使用vue-router进行路由配置,利用Vuex管理应用状态,包括常量引用和方法调用。同时,讲解了axios的二次封装以及如何解决跨域问题,还涉及Vue组件间的通信和数据还原策略,以及如何修改ElementUI的默认样式。
摘要由CSDN通过智能技术生成

vue-router

import Vue from "vue"
import VueRouter from "vue-router"
Vue.use(VueRouter)
const routes=[{
path:"/"
component:()=>import("路径")
}]
const router=new VueRouter({
    routes
})
export default router

app.vue引用

<router-view/>

main.js引用

import router from "路径"
new Vue({
router
})

通讯store

index.js

import Vue from "vue"
import Vuex from "vuex"
import tap from "top.js"
Vue.use(Vuex)
export default new Vuex.Store({
   modules:{
       tap
   }
})

top.js

export default({
    state:{
        data:""
    
    },
    mutations:{
        function1(state){
            return state.data=500
        },
        function 2(state,parameter){
        
        }
    
    }
})

引用

//常量引用
this.$store.state.top.data

...mapState({
   taps:(state)=>state.top.data
})

//方法的引用
this.$store.commit("方法名")
this.$store.commit("方法名",parameter)

axios二次封装

安装

npm install --save axios

二次封装

import axios from "axios"
const http=axios.create({
    baseURL:"/api",
    timeout:5000
})
http.interceptors.request.use(function(config){
    return config
},function(error){
    return error
})
http.interceptors.response.use(function(config){
    return config
},function(error){
    return error
})
export default http

index.js 使用

import http from "request.js"
const getList=()=>{
    return http.get("/getList")
}
export default {
  getList
}

解决跨域

//代理跨域  ,在vue.config.js添加
  devServer:{
  //设置子域名访问
    historyApiFallback : true ,
    allowedHosts :" all "
    proxy: {
      "/api": {
      //后台服务器地址
        target: "http://39.98.123.211",
       
      }
    }
  }

組件件方法调用

子调父

this.$parent.fatherMethod();

父调子

this.$refs.child.sing();

vue还原data初始数据

// 1、重置data中的所有数据
// 无论data中的数据如何改变,使用这句就可以恢复初始数据
Object.assign(this.$data, this.$options.data())
 
// 2、重置data中的某个值
// 只会让指定的这个数据被初始化,不会影响到data里的其他数据
// 用this.$options.data()重置组件data时,data()里用this获取的props或method都为undefined
this.formData = this.$options.data.call(this).formData

修改element ui的默认样式

通过/deep/,深度修改它的样式

/deep/ .el-card__body  {
    padding: 5px;
}

弹窗编辑时,不直接修改表格所使用的数据

1.使用临时数据进行编辑
this.tempData = { ...this.tableData[index] };

2.使用深拷贝进行编辑
this.editedItem = JSON.parse(JSON.stringify(item)); // 深拷贝数据项
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二十三之歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值