当前位置:   article > 正文

Vue(9)

Vue(9)
<template>
  <div>
    <!-- appear自动加载动画 -->
     <transition appear>
        <h1 v-show="isShow">你好</h1>
    </transition>
    <!-- name为设置多个过渡动画取别名 -->
     <transition name="app">
        <h1 v-show="isShow">今天学习过渡动画</h1>
    </transition> 
    <!-- <transition-group>需要添加key值 -->
     <transition-group appear>
        <h1 v-show="isShow" key="1">你好</h1>
        <h1 v-show="isShow" key="2">今天学习过渡动画</h1>
    </transition-group> -->
    <button @click="func()">调取demo接口</button>
  </div>
</template>

<script>
import 'animate.css';
import axios from 'axios'
export default {
    name:"MyDay07",
    data() {
        return {
            isShow:true,
        }
    },
    methods:{
        // xhr
        // ajax
        // axios
        // fetch
        // 写了await必须写async
        // 协议 域名 端口
        // 跨域 http://localhost:80 http://localhost:90
        // cors jsonp nginx 代理 解决跨域问题的几种方案
         func(){
         axios.get('http://10.11.136.77:8080/api/student').then((res)=>{
            console.log(res);
         },(err)=>{
            console.log(err);
         })

        }
    }
}
</script>

<style>
.v-enter-active{
    animation: move 3s linear;
}
.app-leave-active{
    animation: move 3s linear;
}
@keyframes move {
    0%{
        color:red;
        transform: translateX(0px);
    }
    100%{
        color:orange;
        transform: translateX(100px);
    }
}
</style>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
import axios from "axios"
const http = axios.create({
    baseURL:"http://localhost:8080",
    timeout:10000
})
// 请求代理拦截
axios.interceptors.request.use(function (config){
    return config;
},function(error){
    return Promise.reject(error);
})
// 响应拦截
axios.interceptors.response.use(function (response) {
    return response;
},function (error) {
    return Promise.reject(error);
})
export default http;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
import Vue from 'vue'
import Vuex from 'vuex'
import user from './ljp/user.js'
import set from './ljp/set.js'

Vue.use(Vuex)

const store = new Vuex.Store({
    //所有组件共享的数据
    state: {
        count:100,
        title:"大标题",
        list:[1,2,3,4,5,6,7,8,9]
    },
    //提供方法,操作state中的数据
    mutations: {
        funAddOne(state,value){
            state.count += value
        },
        funRedOne(state,value){
            state.count -= value
        },
        delayOne(state,value){
            state.count = value
        }
    },
    //处理异步,不是直接操作state,先commit mutations
    actions: {
        changeOne(context,value){
            setTimeout(()=>{
                context.commit('delayOne',value)
            },1000)
        }
    },
    //类似于计算属性
    getters:{
        filter(state){
            return state.list.filter((item)=>{
                return item>5
            })
        }
    },
    modules:{
        user,
        set
    }
})

export default store
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
<template>
  <div id="app">
    <!-- 父组件 -- {{ $store.state.title }} -- {{ $store.state.count }}
    <!-- v-model拆分 -->
   
    <!-- <Student :value="age" @input="age = $event.target.value"></Student> -->
    <!-- <button @click="isShow=true">点击退出登录</button> -->
    <!-- <BaseDialog :visible="isShow" @update:visible="isShow=$event" /> -->
    <!-- 场景:封装弹框类的基础组件,visible属性 true显示false隐藏 -->
     <Children :visible.sync = 'isShow' /> 
     <Children />
    {{ name }} -->
    <attr/>
    <!-- provide & inject -->
    <!-- <button @click="changeColor">修改颜色</button>
    <button @click="changeName">修改姓名</button> -->
  </div>
</template>

<script>
import Children from './components/Children.vue'
import attr from "./components/atter.vue"


export default {
  name: 'App',
  data () {
    return{
      // selectId:"2",
       isShow:false
      // 普通数据类型不是响应式
      color:'pink',
      // 复杂数据类型是响应式
      info:{
        name:'ljep'
      },
      name:''
    }
  },
  components: {
     Children,
     attr
  },
  methods:{
    // changeColor(){
    //   this.color='red'
    // },
    // changeName(){
    //   this.info.name='lhb'
    // },
  },
  mounted() {
    this.name = this.$children[0].name
  },
}
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/544825
推荐阅读
相关标签
  

闽ICP备14008679号