Vue 2 上手(二)

一个页面中可以创建多个vue实例,而vue实例所带的信息只作用于自己挂载 的区域

一、监听器

监听某个数据是否发生变化,如果变化是否要处理

watch

watch: {
                message: function (newVal, oldVal) {
                    console.log(newVal, oldVal)
                }
            },

二、axios

axios与ajax的区别

        技术实现方式不同

        axios提供了请求拦截和响应拦截

                拦截:请求头需要写太多token信息

                响应:针对状态码进行同意判断处理:404,403,500,200

1、axions的使用

        1)引入axios.js

<script src="../static/js/axios.min.js"></script>

         2)确定请求方式

 顺序为 axios.get().then().catch()

         首先确定是get/post

        然后使用then做方法

        发生错误使用catch

1、GET方式请求

//GET的请求格式
            //发送axios请求
            axios.get(
                “url地址”, 
                {//传输data
                    params: {
                        acc: this.userInfo.username,
                        pwd: this.userInfo.password
                    }
                }
            ).then(
                function (res) {
                    console.log(res);
                }
            ).catch(function (err) {
                console.log(err);
            });
        

2、POST方式请求

 axios.post(
                "URL地址",
                {
                    adminAccount: this.userInfo.username,
                    adminPwd: this.userInfo.password
                }
            ).then(
                function (res) {
                    if (res.data.code == 1) {
                        alert(res.data.msg)
                    } else {
                        alert(res.data.msg)
                    }
                }
            ).catch(
                function (error) {
                    alert(error);
                }
            );

2、CORS

跨越问题:

同源策略:发送请求中,前后端的ip/端口(域名)是同一个

解决:

        前端解决:vue代理转发、nginx

        后端解决:使用注解 @CrossOrigin

@CrossOrigin
    @RequestMapping("/login")
    @ResponseBody
    public ResponseDTO loginAdmin(String acc,String pwd){
        return adminService.loginAdmin(acc, pwd);
    }

三、子组件

遵循模块化开发

        优点:1、简化代码,逻辑结构清晰

                  2、组件重复利用

全局组件:

注册全局组件 ,参数:组件名,参数信息:模板template,data:数据,methods:方法

需要先声明后调用,并且需要声明在vue上

Vue.component("top-hello", {
            template://模板
                `<div>
                    
                </div>`,
            data() {
                return {
                    userInfo: {
                        username: '123',
                        password: '123'
                    }
                }
            },
            methods: {
                login() {
                    alert(this.userInfo.username + this.userInfo.password)
                }
            }
        })

局部组件: 

       //局部组件
        new Vue({
            el: '#app',
            data: {
                msg: "hello"
            },
            components: {
                topHello: {
                    template://模板
                        `<div>
                            <p>
                                账号:<input type="text" v-model="userInfo.username">
                            </p>
                            <p>
                                密码:<input type="password" v-model="userInfo.password">
                            </p>
                            <p>
                                <button @click="login">登录</button>
                            </p>
                        </div>`,
                    data() {
                        return {
                            userInfo: {
                                username: '123',
                                password: '123'
                            }
                        }
                    },
                    methods: {
                        login() {
                            alert(this.userInfo.username + this.userInfo.password)
                        }
                    }
                }
            }
        })

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值