当前位置: 首页 > news >正文

VUE笔记(三)vue的语法

一、计算属性

1、计算属性的概念

计算属性是依赖于源数据(data或者属性中的数据),在元数据的基础上进行逻辑运算后得到的新的数据,计算属性要依赖于源数据,源数据数据变化计算属性也会变化

2、计算属性的语法

在vue2中使用computed这个选项完成计算属性的

<template><div><h2>购物车</h2><table><thead><tr><td>编号</td><td>商品</td><td>数量</td><td>价格</td><td>小计</td></tr></thead><tbody><tr v-for="item in filterShopcartList" :key="item.id"><td>{{item.id}}</td><td>{{item.name}}</td><td><button @click="item.num--">-</button>{{item.num}}<button @click="item.num++">+</button></td><td>{{item.price}}</td><td>{{(item.price*item.num).toFixed(2)}}</td></tr></tbody><tfoot><tr><td colspan="5">总价:{{getTotalPrice}}</td></tr></tfoot></table></div>
</template>
​
<script>
export default {data(){return{shopcartList:[{id:'1001',name:'红富士苹果',price:3.69,num:1},{id:'1002',name:'威化饼干',price:1.69,num:1},{id:'1003',name:'康师傅方便面',price:5.21,num:1}]}},computed:{filterShopcartList:{//get方法是为了完成获取计算值后的属性get(){return this.shopcartList.filter(item=>item.num>0)}},getTotalPrice:{get(){return this.filterShopcartList.reduce((prve,cur)=>prve+cur.price*cur.num,0).toFixed(2)}}}
}
</script>
​
<style>table{border-collapse: collapse;}td{border:1px solid #999;padding: 10px;}
</style>

2、计算属性的简写形式

1)计算属性的标准写法:(很少用,需要更改原数据时才用)
computed:{计算属性名称:{get(){return 新的结果}}}
2)计算属性的简单写法(常用)
computed:{计算属性名称:{return 新的结果}}
<template><div><h2>购物车</h2><table><thead><tr><td>编号</td><td>商品</td><td>数量</td><td>价格</td><td>小计</td></tr></thead><tbody><tr v-for="item in filterShopcartList" :key="item.id"><td>{{item.id}}</td><td>{{item.name}}</td><td><button @click="item.num--">-</button>{{item.num}}<button @click="item.num++">+</button></td><td>{{item.price}}</td><td>{{(item.price*item.num).toFixed(2)}}</td></tr></tbody><tfoot><tr><td colspan="5">总价:{{getTotalPrice}}</td></tr></tfoot></table></div>
</template>
​
<script>
export default {data(){return{shopcartList:[{id:'1001',name:'红富士苹果',price:3.69,num:1},{id:'1002',name:'威化饼干',price:1.69,num:1},{id:'1003',name:'康师傅方便面',price:5.21,num:1}]}},computed:{filterShopcartList:{//get方法是为了完成获取计算值后的属性get(){return this.shopcartList.filter(item=>item.num>0)}},getTotalPrice:{get(){return this.filterShopcartList.reduce((prve,cur)=>prve+cur.price*cur.num,0).toFixed(2)}}}
}
</script>
​
<style>table{border-collapse: collapse;}td{border:1px solid #999;padding: 10px;}
</style>

3、计算属性的缓存特性

计算属性具有缓存作用,在原数据不改变的情况下,计算属性多次调用只有第一次进行计算,后续都是从缓存中获取数据,如果源数据变化之后,计算属性就会重新进行计算。

4、setter和getter方法

<template><div><div>firstName:<span>{{firstName}}</span></div><div>middleName:<span>{{middleName}}</span></div><div>lastName:<span>{{lastName}}</span></div><div>fullName:<span>{{name}}</span></div><button @click="name='zhang san feng'">changeFullName</button></div>
</template>
​
<script>
export default {data(){return{firstName:'zhai',middleName:'ji',lastName:'zhe'}},computed:{name:{get(){return this.firstName+" "+this.middleName+" "+this.lastName},set(val){//计算属性是不能改的console.log('val',val);this.firstName=val.split(" ")[0]this.middleName=val.split(" ")[1]this.lastName=val.split(" ")[2]}}}
}
</script>
​
<style lang="scss">div{span{color: blue;}}
</style>

三、侦听器

1、侦听器的概念

在vue中当我们对data的数据或者计算属性进行变化的时候,专门一个选项可以随时监听data或者计算属性的变化,从而完成相应的逻辑

2、监听器的语法

监听器的语法有两种形式

  • 简写写法

watch:{//newval:变化之后的数据//oldval:变化之前的数据监视的数据名(newval,oldval){
​}
}

案例:监视计数器num的变化

export default {data(){return{num:0}},watch:{num(newval,oldval){console.log(newval,oldval);}}
}
  • 监听器的标准写法

    语法

 watch:{监听的数据名:{//监听的逻辑处理方法handler(newval,oldval){
​},//是否深度监听deep:true|false,//是否立即监听immediate:true|false}}

案例:使用标准写法完成计数器的监听

export default {data(){return{num:0}},watch:{num:{handler(newval,oldval){console.log(newval,oldval);}}}
}

3、监听对象中属性变化

如果要监听对象中属性的变化,可以有两种方式

第1种方式:通过'对象名.属性名'的方式

<template><div><div>{{obj.a}} <button @click="obj.a++">a+</button></div><div>{{obj.b}} <button @click="obj.b++">a+</button></div><div>{{obj.c}} <button @click="obj.c++">a+</button></div></div>
</template>
​
<script>
/* watch:{'对象名.属性名'(newval,oldval){}}
*/
export default {data(){return{obj:{a:10,b:20,c:30}}},watch:{'obj.a'(newval,oldval){console.log('obj.a',newval,oldval);},'obj.b'(newval,oldval){console.log('obj.b',newval,oldval);},'obj.c'(newval,oldval){console.log('obj.c',newval,oldval);}}
}
</script>

如上这种方式如果属性过多,它就太麻烦了

  • 方式2:通过深度监听的方式来完成对对象的监听

export default {data(){return{obj:{a:10,b:20,c:30}}},computed:{//新定义一个计算属性newObj,该计算属性的作用是将data对象中的obj做一个深拷贝newObj(){//这种深拷贝对于如果一个对象中有函数,获知时间类型是无法进行深拷贝//JSON.stringify将JSON格式字符串(对象)转换为js对象(属性名没有双引号)//JSON.parse将JSON字符串转为对象;return JSON.parse(JSON.stringify(this.obj))}},watch:{//obj:要监听的对象newObj:{//执行监听的具体钩子函数handler(newval,oldval){console.log(newval,oldval);},//开启深度监听deep:true}}
}

4、立即监听设置

通过对watch中 immediate设置为true,就会开启立即监听

 watch:{//obj:要监听的对象newObj:{//执行监听的具体钩子函数handler(newval,oldval){console.log(newval,oldval);},//开启深度监听deep:true,//开启立即监听immediate:true}}

四、过滤器

1、什么是过滤器

vue中定义过滤器,主要用于文本格式化,具体可以完成如下功能

  • 日期的格式化

  • 货币格式化

  • 小数点精确度的截取

  • 大小写首字母转换等

注意:vue2中过滤器,vue3中将过滤去掉了

2、过滤器的分类

按照作用范围,可以将过滤器分成两大类

  • 全局过滤器:针对项目中所有组件都有用

  • 私有过滤器(局部过滤器)只针对当前组件有效

2.1、定义私有私有过滤器
  • 定义私有过滤器

export default{data(){},methods{},//filters:配置对象filters:{过滤器的名称(参数){}}
}
  • 如何调用过滤器

使用过滤器的时候可以在两种情况下使用,第1种情况在插值表达式中使用;第2种在属性中使用

在插值表达式中使用

{{message|过滤器的2名称|过滤器2的名称}}

message代表是输出数据对象,|这个竖杠表示的就是一个管道符,使用这个符号将插值表达式和过滤器连接在一起

使用v-bind在属性中使用

<div v-bind:id="id的变量|过滤器的名称"></div>

案例:通过身份证获取格式化出生日期

<template><div><div>身份证号:{{idcard}}</div><div>生日:{{idcard|birthday}}</div></div>
</template><script>
export default {data(){return{idcard:'610122198404084030'}},filters:{birthday(val){return val.slice(6,10)+"-"+val.slice(10,12)+"-"+val.slice(12,14)}}
}
</script>
2.2、定义全局过滤器

定义全局过滤器的语法

Vue.filter('过滤器的名称',function(val){ return result})

定义全局过滤器的步骤

  • 在src下创建一个filters的文件夹

  • 在src/filters文件夹下定义过滤器的js文件

//首先先导入Vue
import Vue from 'vue'
Vue.filter('capitalize',function(val){return val.charAt(0).toUpperCase()+val.slice(1)
})
  • 在main.js中导入定义全局过滤器

import Vue from 'vue'
import App from './App.vue'
import './filters/capitalize' //在此处导入Vue.config.productionTip = false
new Vue({render: h => h(App),
}).$mount('#app')
  • 在组件中可以使用|的方式来调用过滤器

五、自定义指令

之前我们已经接触过指令,在但是我们接触这些指令都是vue提供的内置指令,每一种指令有着不同的用途,如果开发者要想自定义指令,就可以使用自定义指令完成不同功能的封装

1、自定义指令的分类

  • 全局自定义指令:可以作用域全局所有的组件

  • 私有自定义指令:只能作用域该组件

1)私有自定义指令的语法
<template><div><h2 v-mycolor="color" @click="color='#0000ff'">Hello Giles</h2><!-- <h1 v-mycolor="color='#ff0000'">Hello Giles</h1><h1 v-mycolor="color='#00ff00'">Hello Giles</h1> --></div>
</template><script>
export default {data(){return{color:'orange'}},directives:{mycolor:{/*当我们将指令绑定到标签的时候会调用一次,在此方法中完成初始化功能el:所绑定指令(自定义指令)所在的DOM元素bindings:自定义指令的配置对象modifiers:指令的修饰符name:指令的名称(不含v-和修饰符的)rawName:指令的全名(v-的前缀和修饰符)value:指定的所传递的值vNode:更新之后的虚拟DOM节点对象oldVnode:更新之前的虚拟DOM节点*/bind(el,bindings,vNode,oldVnode){console.log('bindings',bindings.value);el.style.color=bindings.value},componentUpdated(el,bindings,vNode,oldVnode){console.log('vNode',vNode);console.log('oldVnode',oldVnode);el.style.color=bindings.valueel.innerHTML="Hello Woniuxy"}}}
}
</script><style></style>
2)全局自定义指令的定义步骤

步骤

  • 在src目录下创建directives文件夹,然后在文件夹下创建自定义指令

import Vue from 'vue'
Vue.directive('ellipses',{bind(el,bindings){let w;if(bindings.value){w=bindings.value.width}else{w="100px"}el.style.width=wel.style.whiteSpace="nowrap"el.style.textOverflow="ellipsis"el.style.overflow='hidden'}
})
  • 在main.js中引入自定义指令

import Vue from 'vue'
import App from './App.vue'
import './directives/ellipses'
Vue.config.productionTip = false
new Vue({render: h => h(App),
}).$mount('#app')
  • 在组件中应用

 <div v-ellipses>白日依山尽,黄河入海流,欲穷千里目,更上一层楼</div><div v-ellipses="{width:'150px'}">白日依山尽,黄河入海流,欲穷千里目,更上一层楼</div><div v-ellipses="{width:'200px'}">白日依山尽,黄河入海流,欲穷千里目,更上一层楼</div>

2、自定义指令的案例

1)完成水印功能

import Vue from 'vue'
Vue.directive('waterMarker',{bind(el,bindings){let canvs=document.createElement('canvas')//设置画布的大小canvs.width=250canvs.height=150//获取画笔的上下文对象let cxt=canvs.getContext('2d')cxt.rotate((20*Math.PI)/180)cxt.fillStyle=bindings.value.colorcxt.font="48px 宋体"cxt.fillText(bindings.value.content,canvs.width/10,canvs.height/2)el.appendChild(canvs)}
})

2)完成画板功能

import Vue from 'vue'
/*Vue.directive是用于定义全局指令的参数有两个参数1:自定义指令名称参数2:自定义指令的配置对象
*/
Vue.directive('draw',{bind(el,bindings){console.log(bindings.value);//创建Canvas对象let cvs=document.createElement('canvas')//给画布设置宽和高cvs.width=bindings.value.widthcvs.height=bindings.value.height//获取上下文对象let cxt=cvs.getContext('2d')//给画笔绑定onmousedowncvs.onmousedown=function(e){//获取鼠标点下去的坐标cxt.moveTo(e.pageX-this.offsetLeft,e.pageY-this.offsetTop)//当鼠标移动时候cvs.onmousemove=function(e){cxt.lineTo(e.pageX-this.offsetLeft,e.pageY-this.offsetTop)cxt.stroke()}cvs.onmouseup=function(){cvs.onmousemove=null}}el.appendChild(cvs)}
})

相关文章:

VUE笔记(三)vue的语法

一、计算属性 1、计算属性的概念 计算属性是依赖于源数据(data或者属性中的数据)&#xff0c;在元数据的基础上进行逻辑运算后得到的新的数据&#xff0c;计算属性要依赖于源数据&#xff0c;源数据数据变化计算属性也会变化 2、计算属性的语法 在vue2中使用computed这个选…...

探讨uniapp的路由与页面生命周期问题

1 首先我们引入页面路由 2 页面生命周期函数 onLoad() {console.log(页面加载)},onShow() {console.log(页面显示)},onReady(){console.log(页面初次显示)},onHide() {console.log(页面隐藏)},onUnload() {console.log(页面卸载)},onBackPress(){console.log(页面返回)}3 页面…...

咸鱼之王俱乐部网站开发

我的俱乐部 最新兑换码 *注意区分大小写&#xff0c;中间不能有空格&#xff01; APP666 HAPPY666 QQ888 QQXY888 vip666 VIP666 XY888 app666 bdvip666 douyin666 douyin777 douyin888 happy666 huhushengwei888 taptap666 周活动 宝箱周 宝箱说明 1.木质宝箱开启1个…...

Electron+Vue3+TS 打包exe客户端

Electron Vue3 TS 实战 - 掘金 如果报错loaderContext.getOptions is not a function ts-loader版本不一致导致的问题。 解决方案&#xff1a;npm install ts-loader8.0.0 --save...

vue3范围选择组件封装

个人项目地址&#xff1a; SubTopH前端开发个人站 &#xff08;自己开发的前端功能和UI组件&#xff0c;一些有趣的小功能&#xff0c;感兴趣的伙伴可以访问&#xff0c;欢迎提出更好的想法&#xff0c;私信沟通&#xff0c;网站属于静态页面&#xff09; SubTopH前端开发个人站…...

能被整除的数(容斥原理)

思路&#xff1a; &#xff08;1&#xff09;需求&#xff1a;求对于1~n中至少能被p1~pm至少1个整除的数的个数&#xff0c;由于都是质数&#xff0c;彼此互质&#xff0c;不需要进行质因子分解&#xff0c;根据容斥原理&#xff0c; res n/p1 n/p2 ... n/pm - n /(p1p2) -…...

Modbus转Profinet网关与流量变送器兼容转ModbusTCP协议博图配置

首先&#xff0c;我们需要明确电磁流量计的通信协议是Modbus&#xff0c;而西门子1200PLC的通信协议是Profinet。这两种协议在功能和特性上存在一定的差异&#xff0c;因此需要使用兴达易控Modbus转Profinet网关设备进行转换。兴达易控的XD-MDPN100是Profinet转ModbusTCP的网关…...

HLS实现CORDIC算法计算正余弦并上板验证

硬件&#xff1a;ZYNQ7010 软件&#xff1a;MATLAB 2019b、Vivado 2017.4、HLS 2017.4、System Generator 2017.4 1、CORDIC算法计算正余弦 CORDIC算法详细分析网上有很多资料&#xff0c;它的原理是用一系列旋转去逼近目标角度&#xff0c;这一系列旋转的角度为 θ a r c t…...

高阶数据结构并查集

目录&#xff1a; 并查集的概念代码实现 LeetCode例题 并查集的概念 将n个不同的元素划分成一些不相交的集合。开始时&#xff0c;每个元素自成一个单元元素集合&#xff0c;然后按一定的规律将归于同一组元素的集合合并。在此过程中反复遇到查询某一个元素属于那个集合的运算…...

WSL2连接不了外网怎么办?

某天忽然WLAN变成地球图标&#xff0c;上不了Internet&#xff0c;搞了半天网络适配器&#xff0c;仍然不行。回忆之前做过的操作&#xff0c;曾经运行过ZoogVPN&#xff0c;试着启动并连接&#xff0c;然后退出&#xff0c;WLAN神奇地恢复了连接&#xff0c;可以上Internet了。…...

【C/C++】探索内存对齐的奥秘与优势

目录 一&#xff0c;前言 二&#xff0c;什么是内存对齐&#xff1f; 三&#xff0c;内存对齐的原理 四&#xff0c;内存对齐的优势 五&#xff0c;如何实现内存对齐&#xff1f;&#xff08;看这节就行&#xff09; 1.使用 #pragma pack 来实现内存对齐的示例 七&#…...

leetcode分类刷题:滑动窗口(二、重复元素类型)

1、连续子数组、连续子串问题通常需要滑动窗口来求解&#xff0c;本篇文章对应的“二、重复元素类型”在此基础上对连续子数组、连续子串中重复元素个数、种类进行考察&#xff0c;此时&#xff0c;需要使用和维护哈希表进行左右指针的移动&#xff0c;因此这类题目对应的解法为…...

MySQL—buffer pool

一、buffer pool的介绍 Buffer pool是什么 一个内存区域&#xff0c;为了提⾼数据库的性能&#xff0c;数据库操作数据的时候&#xff0c;把硬盘上的数据加载到buffer pool&#xff0c;不直接和硬盘打交道&#xff0c;操作的是 buffer pool的数据&#xff0c;数据库的增删改查…...

《C和指针》笔记8: 枚举类型

枚举 (enumerated)类型就是指它的值为符号常量而不是字面值的类型&#xff0c;它们以下面这种形式声明&#xff1a; enum Jar_Type { CUP, PINT, QUART, HALF_GALLON, GALLON };这条语句声明了一个类型&#xff0c;称为Jar_Type。这种类型的变量按下列方式声明&#xff1a; e…...

Python爬虫框架之Selenium库入门:用Python实现网页自动化测试详解

概要 是否还在为网页测试而烦恼&#xff1f;是否还在为重复的点击、等待而劳累&#xff1f;试试强大的Selenium&#xff01;让你的网页自动化测试变得轻松有趣&#xff01; 一、Selenium库到底是什么&#xff1f; Selenium 是一个强大的自动化测试工具&#xff0c;它可以让你直…...

docker swarm 部署服务网络问题

docker swarm 服务部署问题 docker swarm 部署服务时可能会出现&#xff0c;启动服务特别慢的情况&#xff0c;甚至一个service 启动后&#xff0c;容器会长时间处于 preparing 状态&#xff0c;直到 状态切换成 running 状态后&#xff0c;才会启动下一个service。然后查询资…...

1.00001git源码clone后进行编译(带调试)

– 新建用户 useradd postgres passwd postgres – 用户加入sude组 先cd到/etc/sudoers目录下 由于sudoers文件为只读权限&#xff0c;所以需要添加写入权限&#xff0c;chmod uw sudoers vim sudoers 找到root ALL (ALL) ALL这一行&#xff0c;在下一行加入username ALL (A…...

使用StorageClass动态创建pv

rook-ceph安装部署到位后&#xff0c;就可以开始来尝试使用StorageClass来动态创建pv了。 有状态的中间件在kubernetes上落地基本上都会用到StorageClass来动态创建pv&#xff08;对于云上应用没有那么多烦恼&#xff0c;云硬盘很好用&#xff0c;但是对于自己学习和练习来说还…...

数据结构(Java实现)-ArrayList与顺序表

什么是List List是一个接口&#xff0c;继承自Collection。 List的使用 List是个接口&#xff0c;并不能直接用来实例化。 如果要使用&#xff0c;必须去实例化List的实现类。在集合框架中&#xff0c;ArrayList和LinkedList都实现了List接口。 线性表 线性表&#xff08;lin…...

性能优化维度

CPU 首先检查 cpu&#xff0c;cpu 使用率要提升而不是降低。其次CPU 空闲并不一定是没事做&#xff0c;也有可能是锁或者外部资源瓶颈。常用top、vmstat命令查看信息。 vmstat 命令: top: 命令 IO iostat 命令&#xff1a; Memory free 命令&#xff1a; 温馨提示&#xff1a…...

PMP P-06 Resource Management

...

【C++】map的奇葩用法:和函数结合

2023年8月26日&#xff0c;周六下午 今天才发现map居然还能这样用... #include <iostream> #include <map> #include <functional>void printOne() {std::cout << "已经打印出1" << std::endl; }void printTwo() {std::cout <<…...

关于JVM的参数类型

JVM参数类型&#xff0c;主要是可以分为三类。分别是&#xff1a; 标准参数 例如&#xff1a; -help-server-client-version-showversion-cp-classpath 等等&#xff0c;这类参数的特点是在jdk各版本里基本不会变的&#xff0c;相对稳定。 X参数 X参数也就是非标准化参数&am…...

HTTP协议中的Content-Type及其常见类型

什么是Content-Type&#xff1f; Content-Type是HTTP协议中的一个头部字段&#xff0c;用于指示请求或响应中所传输的实体的媒体类型。 为什么使用Content-Type&#xff1f; 使用Content-Type可以告知接收方如何解析和处理传输的数据&#xff0c;确保数据能够正确地被解析和…...

android Junit4编写自测用例

10多年的android开发经验&#xff0c;一直以来呢&#xff0c;也没有使用过android自带的测试代码编写。说来也惭愧。今天也花了点时间稍微研究了下。还挺简单。接下来就简单的说一下。 新建工程 直接默认新建一个工程&#xff0c;就会有两个目录androidTest和test(unitTest)两…...

arcgis:画一幅自己城市的shp地图

首先打开ArcGis10.6&#xff0c;点击带黄底的小加号&#xff0c;添加底图。 可以选择中国地图彩色版&#xff0c;然后双击&#xff0c;转动鼠标滑轮找到属于自己的城市。 点击-目录&#xff0c;在新建的文件夹里右击-新建-shapefile。 格式选择折线&#xff0c;先把主要河流道路…...

采购油封时要考虑的因素

对于依赖机械和设备的行业来说&#xff0c;油封的选择是一个关键的决定&#xff0c;以确保平稳运行并防止流体泄漏。由于有多种选择&#xff0c;了解购买油封时要考虑的关键因素对于确保适合特定应用至关重要。让我们深入研究一下在此选择过程中发挥关键作用的考虑因素。 1、运…...

【无标题】科目一笔记

载人超过核定人数 校车/公路客运汽车/旅游客运汽车 未达到20%&#xff0c;-6超过20%以上&#xff0c;-12 七座以上载客汽车 1. 超过20%以上未达到50%&#xff0c;-6 2. 超过50%以上未达到100%&#xff0c;-9 其他载客汽车 1. 超过20%以上未达到50%&#xff0c;-3 2. 超过50…...

java八股文面试[数据结构]——HashMap和HashTable区别

HashMap源码中的重要常量 DEFAULT_INITIAL_CAPACITY: HashMap的默认容量&#xff0c;16 MAXIMUM_CAPACITY&#xff1a; HashMap的最大支持容量&#xff0c;2^30 TREEIFY_THRESHOLD&#xff1a;Bucket中链表长度大于该默认值&#xff0c;转化为红黑树。 UNTREEIFY_THRESHOLD…...

乐趣无限:10款基于Pygame的经典游戏合集

​​​​​​引言 游戏开发一直是许多程序员和游戏爱好者追求的梦想。而Pygame作为一款功能强大的游戏开发库&#xff0c;为我们提供了实现各种有趣游戏的工具和接口。在本文中&#xff0c;我将向大家介绍10款基于Pygame的经典游戏合集&#xff0c;从简单的猜数字到刺激的飞机…...

制作 网站/百度快照优化排名推广怎么做

access总结 在access数据库管理系统中&#xff0c;数据库是一个基础&#xff0c;它主要用来存储数据库应用系统中的其他数据库对象&#xff0c;也就是说&#xff0c;构成数据库应用系统的其他对象都存储在数据库中。 access第二章书中介绍使用access创建数据库的各种方法以及数…...

哪里找做网站的公司/活动推广软文

1 饼状图 import mx.collections.ArrayCollection; //绑定需要显示的数据 [Bindable] //设定要显示的数据 private var modelData:ArrayCollection new ArrayCollection( [ { Year: "2010年世界杯", Count: 4 }, { Year: "2014年世界杯", Count: 10 }, { …...

九九建筑网官网登录/搜索引擎优化的概念是什么

Source Insight自定义快捷键 鄙人一直用的是Eclipse来开发&#xff0c;如果只是做java的话&#xff0c;这个就够了&#xff0c;但因时不时要查C/C的代码&#xff0c;这个时候这个工具就有点力不从心了&#xff0c;因为C/C的代码非常多&#xff0c;一般放在服务器上&#xff0c…...

网站建设协议 模板下载/品牌广告文案

http://www.cnblogs.com/snake-hand/archive/2013/06/10/3131157.html 最近同事W发现使用Java Date创建日期&#xff0c;在不同的机器上执行&#xff0c;得到的部分天小时数不一致。一开始怀疑机器的时间同步有问题&#xff0c;便拿到自己的机器上运行&#xff0c;异常复现&…...

江西论坛/百度关键词seo外包

全球领先的射频解决方案设计制造厂商SkyCross日前宣布其面向LTE 和 Wi-Fi的双频iMAT(隔离模式天线技术)和 4x4MIMO(多输入多输出)解决方案能使配备高通骁龙 820 智能设备处理器的性能最大化。SkyCross 先进的 iMAT天线及方案已于2014年面市&#xff0c;并被用于超过一百万部商用…...

wordpress三级导航菜单调用/sem和seo是什么职业岗位

1.为什么选择 NASA下载数据&#xff1f; 在遥感研究中&#xff0c;有一个不得不提到的传感器&#xff0c;那就是Modis &#xff0c;Modis的数据在国内可以下载的到&#xff0c;但是数据更新的比较慢&#xff0c;比如地理空间数据云的遥感产品数据&#xff0c;想要获取到最新的…...