vueDay01总结

**

vue

**
vue是一套用于构建用户界面的渐进式框架
vue核心:vue核心库只关注视图层,易上手,便于与第三方库和既有项目的整合

vue代码运行的原理:vue库文件进行了解析;编译过程,把vue语法转化成了原生js代码,页面更新只去修改数据,不再操作DOM
指令:本质就是自定义属性;
vue中的指令都是以**v-**开头

第一vue页面 htllo world

 //el:元素的挂载位置,要把数据挂载到哪个位置;
  //data:模型数据,所有的数据都放到data里面;
  //{{}}插值表达式, 把数据填充到html里面;{{1+2}} 支持简单的数学计算;
 <div id="app">
        <div>{{msg}}</div>
        <div>{{1+2}}</div>//3
        <div>{{msg + '----' + 123}}</div>//hello wolrd ---123
    </div>
    <script src="js/vue.js"></script>
    <script>
        //vue的基本使用步骤:
        //1.需要提供标签,用于填充数据;
        //2.引入vue库文件;
        //3.使用vue语法做功能;
        //4.把vue提供的数据填充到标签里面;
        var vm = new Vue({
            el: '#app',
            data: {
                msg: 'hello world'
            }
        })
    </script>

v-cloak

<style>
        [v-cloak] {
            display: none;
        }
    </style>
<div id="app">
        <div v-cloak>{{msg}}</div>
    </div>
    <script src="js/vue.js"></script>
    <script>
        //指令就是自定义属性;
        //v-cloak指令;
        //插值表达式存在闪动问题;v-cloak可以解决闪动问题
        //v-cloak用法;
        //1.提供样式;
        //2.在插值表达式所在的标签中添加 v-cloak
        //原理:先通过样式隐藏内容,然后在内存中进行值的替换;替换完毕在显示最终的结果;
        var vm = new Vue({
            el: '#app',
            data: {
                msg: 'hello'
            }
        })
    </script>

数据填充的相关的三个指令用法

 <div id="app">
        <div>{{msg}}</div>
        <div v-text='msg'></div>
        <div v-html='msg1'></div>
        <div v-pre>{{msg}}</div>
    </div>
    <script src="js/vue.js"></script>
    <script>
        //1.v-tetx没有闪动问题;填充纯文本;
        //2.v-html填充html片段;
        //注意:v-html存在安全隐患;网站内部的数据可以使用,跨域和第三方不建议使用
        //3.v-pre用于显示文本信息;跳过编译,显示原本信息;
        var vm = new Vue({
            el: '#app',
            data: {
                msg: 'hello',
                msg1: '<h1> hello </h1>'
            }
        })
    </script>

v-once

 <div id="app">
        <div>{{msg}}</div>
        <div v-once>{{info}}</div>
    </div>
    <script src="js/vue.js"></script>
    <script>
        //数据响应式:数据来驱动内容来变化
        //html5的响应式就是做适配,屏幕尺寸变化,样式也会变化
        //数据绑定:将数据填充到标签中;
        //v-once:只编译一次,显示内容以后,不再具有响应式;
        //应用场景:如果显示的信息后续不要修改,就可使用v-once;可以提高性能,vue就不用再监听这个指令
        var vm = new Vue({
            el: '#app',
            data: {
                msg: 'hello',
                info: 'haha'
            }
        })
    </script>

双向数据绑定v-model

  • 当数据发生变化的时候,视图也就发生变化
  • 当视图发生变化的时候,数据也会跟着同步变化
v-model是一个指令,限制在 <input>、<select>、<textarea>、components中使用
当输入框中内容改变的时候,  页面上的msg  会自动更新
 <div id="app">
        <div>{{msg}}</div>
        <div>
            <input type="text" v-model='msg'>
        </div>
    </div>
    <script src="js/vue.js"></script>
    <script>
        //双向绑定:
        //主要用于输入框中
        var vm = new Vue({
            el: '#app',
            data: {
                msg: 'hello'
            }
        })
    </script>

mvvm

MVC 是后端的分层开发概念; MVVM是前端视图层的概念,主要关注于 视图层分离,也就是说:MVVM把前端的视图层,分为了 三部分 Model, View , VM ViewModel
M model 数据层 vue中的数据层都放到了data里面
V views 视图
VM 控制器 将数据和视图建立联系
vm就是vue的实例,就是VM

v-on

 <div id="app">
        <div>{{msg}}</div>
        <div>
            <!-- 方法一 -->
            <button v-on:click="msg++">按钮</button>
            <!-- 简化二 -->
            <button @click="msg++">按钮</button>
            <!-- 方法三 -->
            <button @click="handle">按钮</button>
            <!-- 方法三 -->
            <button @click="handle()">按钮</button>
        </div>
    </div>
    <script src="js/vue.js"></script>
    <script>
        //事件绑定:v-on指令用法
        //绑定事件定义在方法里面;
        //注意:函数必须带定义在methods里面;
        var vm = new Vue({
            el: '#app',
            data: {
                msg: 0
            },
            methods: {
                handle: function() {
                    this.msg++;
                    console.log(this===vm) //true
                    //这里的this指向的是vue的实例对象;
                }
            }
        })
    </script>

事件函数传递参数

   <div id="app">
        <div>{{num}}</div>
        <div>
            <!--  1.如果事件要绑定事件名称,那么默认会传递事件对象作为事件函数的第一参数 -->
            <button @click='handle1'>按钮</button>
            <!-- 2.如果事件绑定函数调用事件,对象必须作为最后一个进行传递;并且事件对象的名称必须是固定的$event -->
            <button @click='handle(123,456,$event)'>按钮</button>
        </div>
    </div>
    <script src="js/vue.js"></script>
    <script>
        var vm = new Vue({
            el: "#app",
            data: {
                num: 0
            },
            methods: {
                handle: function(p, p1, event) {
                    this.num++;
                    console.log(p, p1, event.target);
                },
                handle1: function(event) {
                    //target触发事件
                    console.log(event.target); //打印整个标签;
                    console.log(event.target.innerHTML); //打印出标签里面的内容
                }
            }
        })
    </script>

事件修饰符

做项目时会用到键盘事件,在监听键盘事件时,vue允许v-on在监听键盘事件时添加按键修饰符
常用的按键修饰符
<input v-on:keyup="submit"/>
.enter =>    enter键
.tab => tab键
.delete (捕获“删除”和“退格”按键) =>  删除键
.esc => 取消键
.space =>  空格键
.up =>  上
.down =>  下
.left =>  左
.right =>  右
 <div id="app">
        <div>{{num}}</div>
        <div @click='handle1'>
            <button @click.stop='handle($event)'>按钮</button>
        </div>
        <div>
            <a href="http://www.baidu.com" @click.prevent='handle2'>百度</a>
        </div>
    </div>
    <script src="js/vue.js"></script>
    <script>
        //事件修饰符:
        //1.阻止事件冒泡:stop;
        //2.阻止默认行为:prevent
        var vm = new Vue({
            el: '#app',
            data: {
                num: 0
            },
            methods: {
                handle1: function() {
                    this.num++;
                },
                handle: function(event) {
                },
                handle2: function(event) {
                }
            }
        })
    </script>

按键修饰符

   <div id="app">
        <form action="">
            <div>
                用户名:
                <input type="text" v-on:keyup.delete='clearContent' v-model='uname'>
            </div>
            <div>
                用户名1:
                <input type="text" v-on:keyup.f1='hadel' v-model='uname'>
            </div>
            <div>
                密码:
                <input type="text" v-on:keyup.enter='handleSubmit' v-model='pwd'>
            </div>
            <div>
                <input type="button" v-on:click='handleSubmit' value="提交">
            </div>
        </form>
    </div>
    <script src="js/vue.js"></script>
    <script>
        //按键修饰符:keyup.enter,keyup.delete
        //自定义按键修饰符:名字是自定义的,对应的值必须按键event之间的值;
        Vue.config.keyCodes.f1 = 13
        var vm = new Vue({
            el: "#app",
            data: {
                uname: '',
                pwd: ''
            },
            methods: {
                handleSubmit: function() {
                    //点击回车打印出用户名和密码
                    console.log(this.uname, this.pwd);
                },
                clearContent: function() {
                    //点击delete清空表单;
                    this.uname = '';
                },
                hadel: function(event) {
                    this.uname = ''; //点击13键清空文本框内容;
                    // console.log(event.keyCode); //打印出键盘对应的key值;
                }
            }
        })
    </script>

属性绑定基本使用v-bind

<div id="app">
        <a v-bind:href="url">百度</a>
        <!-- 简写 -->
        <a :href="url2">黑马程序员</a>
        <button @click='hadel'>按钮</button>
    </div>
    <script src="js/vue.js"></script>
    <script>
        //属性绑定;v-bind属性绑定;
        var vm = new Vue({
            el: '#app',
            data: {
                url: 'http://www.baidu.com',
                url2: 'http://itcast.cn'
            },
            methods: {
                hadel: function() {
                    this.url = 'http://itcast.cn'
                }
            }
        })
    </script>

v-model指令的本质

 <div id="app">
        <div>{{msg}}</div>
        <input type="text" :value='msg' @input='headel'>
        <input type="text" :value='msg' @input='msg=$event'>
        <input type="text" :value='msg' v-model='msg'>
    </div>
    <script src="js/vue.js"></script>
    <script>
        //v-model实现数据双向绑定:就是用到了v-on绑定事件和v-bind绑定属性值
        var vm = new Vue({
            el: "#app",
            data: {
                msg: 'hello'
            },
            methods: {
                headel: function() {
                    //是以输入域中最新的数据覆盖原来的数据;
                    this.msg = event.target.value
                }
            }
        })
    </script>

样式绑定Class对象用法

// 样式绑定相关语法细节:
        //1、对象绑定和数组绑定可以结合使用
        //2、class绑定的值可以简化操作;在data里面定义一个对象,存储更多数据;
        //3、默认的class如何处理?默认的class会保留
<style>
        .active {
            border: 1px solid red;
            width: 100px;
            height: 100px;
        }
        .error {
            background-color: orange;
        }
    </style>
 <div id="app">
        <div :class="{active:isActive,error:isEeeor}">测试样式</div>
        <button @click='hadel'>按钮</button>
    </div>
    <script src="js/vue.js"></script>
    <script>
        //通过v-bind来绑定样式属性;以对象在里面填写,多个值以逗号分隔;
        var vm = new Vue({
            el: '#app',
            data: {
                isActive: true,
                isEeeor: true
            },
            methods: {
                hadel: function() {
                    //控制样式在true和false之间切换
                    this.isActive = !this.isActive;
                    this.isEeeor = !this.isEeeor
                }
            }
        })
    </script>

样式绑定Class数组用法

 <div id="app">
        <div :class='[activeClass,errorClass]'>测试样式</div>
        <button @click='hidel'>按钮</button>
    </div>
    <script src="js/vue.js"></script>
    <script>
        var vm = new Vue({
            el: "#app",
            data: {
                activeClass: 'active',
                errorClass: 'error'
            },
            methods: {
                hidel: function() {
                    this.activeClass = '';
                }
            }
        })
    </script>

样式绑定style用法

 <div id="app">
        <div v-bind:style='{border: borderStyle, width: widthStyle, height: heightStyle}'></div>
        <div v-bind:style='objStyles'></div>
        <div v-bind:style='[objStyles, overrideStyles]'></div>
        <button v-on:click='handle'>切换</button>
    </div>
    <script type="text/javascript" src="js/vue.js"></script>
    <script type="text/javascript">
        /*
              样式绑定之内联样式Style:
              
            */
        var vm = new Vue({
            el: '#app',
            data: {
                borderStyle: '1px solid blue',
                widthStyle: '100px',
                heightStyle: '200px',
                objStyles: {
                    border: '1px solid green',
                    width: '200px',
                    height: '100px'
                },
                overrideStyles: {
                    border: '5px solid orange',
                    backgroundColor: 'blue'
                }
            },
            methods: {
                handle: function() {
                    this.heightStyle = '100px';
                    this.objStyles.width = '100px';
                }
            }
        });
    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值