- vue基础七(Less)
今天晚上一定要早睡
vuevue.jscsscss3
Less安装注释导入变量(Variables)混合(Mixins)嵌套(Nesting)运算转义(Escaping)函数(Functions)命名空间和访问符映射作用域sass,less和stylussass变量的表示变量的赋值缩进的问题if条件判断的问题都支持嵌套Less(LeanerStyleSheets的缩写)是一门向后兼容的CSS扩展语言。安装将less安装为开发依赖npmiless--s
- 136道Vue面试八股文(答案、分析和深入提问)整理
守护海洋的猫
vue.js面试javascript前端ecmascript
1.简述mixin、extends的覆盖逻辑回答在Vue中,mixins和extends是用来实现代码复用的两种方式,但它们在覆盖逻辑上有一些细微的区别。1.Mixin当你使用mixins的时候,可以将多个功能组合在一起。Mixins的内容会与组件中的数据、方法、生命周期钩子等进行合并。数据:Mixin中的数据会与组件中的数据合并。如果两个数据属性同名,则组件的数据属性会覆盖mixin中的属性。方
- 【数值模型后处理系列】通风系数计算及垂直层插值
北潇
数值模型Python实用基础技能pythonWRF
一、通风系数1.1通风系数简介通风系数(VentilationCoefficient,VC)可以用来表征扩散条件,其计算公式如下(参考USIyerandPErnestRaj的文章):其中mixingdepth选用WRF输出的边界层高度(PBLH),meanwindspeed近似用边界层顶的风速与地面风速做平均(当然也可多选几层)。1.2Python代码实现VC的计算计算VC的示例代码:fromne
- 介绍gruntwork模块服务和体系结构目录
weixin_26755331
pythonlinuxjava
Today,I’mexcitedtorevealthenewdesignoftheGruntworkInfrastructureasCodeLibrary(IaCLibrary):今天,我很高兴地将Gruntwork基础结构的新设计作为代码库(IaC库)予以揭示:TheGruntworkModuleCatalogBuildyourinfrastructurebymixing&matchinghun
- Less CSS 预处理器
安之若素づ
Lessless
目录安装注释嵌套变量操作命名空间和访问器扩展Extend混合Mixins传递规则集给混合函数Guards导入import转义字符合并父选择器Less用法Less插件程序化使用安装安装lessc以供全局使用:通过NPM(节点程序包管理器)在服务器上安装Less:npminstallless-g您还可以在包名称后面添加特定版本。例如:
[email protected]安装到项目开发npmil
- CSS预处理器——SCSS的灵活语法
像素检测仪
css前端cssscss前端
目录一、概述二、SCSS的基本语法和特性(一)变量(二)嵌套规则(三)混合器(Mixins)(四)继承(五)运算符(六)函数(七)条件语句(八)循环三、SCSS的优势四、SCSS的应用场景一、概述SCSS(SassyCSS)是一种CSS的预处理器,是CSS的一种扩展语言。它在CSS的基础上增加了许多强大且实用的特性,如变量、嵌套规则、混合器(mixins)、继承、运算符和函数等。SCSS的文件扩展
- vue实现自定义校验值是否有效
毛三仙
mixin后台管理系统vue项目中常用操作vue.jsjavascript前端
新建mixin/valid.jsexportdefault{data(){return{//invalidValues:newSet(["undefined","null","NaN","",null,undefined])invalidValues:["undefined","null","NaN","",null,undefined,NaN]};},methods:{isValidValue(
- React组件抽象(二):高阶组件
小笼包是馒头
ReactReact高阶组件HOC属性拦截反向继承
React组件抽象(一):高阶组件前面介绍了组件抽象的方法:mixin。现在我们来介绍下另一种重要的高阶组件(Higher-orderComponent),简写HOC。一、高阶组件是什么,为什么要使用?组件被包裹,返回一个增强的组件。打个比方,HOC像钢铁侠的机甲,对于普通人来说,穿上就是复联超人了,这个人并不一定需要关心内部怎么机甲实现方式。为啥要用?被包裹组件不需要关心高阶组件发生了什么,逻辑
- React组件抽象
weixin_34041003
jsonjavascriptViewUI
组件抽象指的是让不同组件公用同一类功能,可以说成组件功能复用,在不同的设计理念下,有许多抽象方法,而对于React,主要有两种:mixin和高阶组件。mixin在createClass中可以使用,但在ES6classes中已抛弃(因为它存在很多副作用),但是我们可以通过decorator语法糖来封装mixin,这样就可以在ES6中使用mixin了。现在更常用的抽象方法是利用高阶组件的方式,它不仅可
- React -- 组件间抽象
玉儿Qi
前端开发React-高阶组件
在React组件的构建过程中,常常有这样的场景,有一类功能需要被不同的组件公用。此时就涉及到了抽象的话题。下面我们重点讨论:mixin和高阶组件。mixinmixin的目的,就是为了创造一种类似多重继承的效果,或者说,组合。实际上,包括C++等一些年龄较大的OOP语言,都有一个强大但是危险的多重继承特性。现代语言权衡利弊,大都舍弃了它,只采用单继承。但是单继承在实现抽象的时候有很多不便,为了弥补缺
- Vue混入(Mixins)与插件开发深度解析
prince_zxill
vue.jsjavascript前端前端框架
Vue混入(Mixins)与插件开发深度解析Vue混入(Mixins)与插件开发深度解析1.Vue混入(Mixins)核心概念1.1什么是混入1.2基础使用方式1.3选项合并策略1.4全局混入及其风险1.5混入的优缺点分析2.混入实战应用案例2.1表单验证混入2.2页面权限控制混入3.Vue插件开发完全指南3.1插件的作用与适用场景3.2插件开发基本规范3.3常用插件类型分析4.插件开发实战案例4
- mixin
_未知_开摆
vue.js前端javascript
Mixin是面向对象程序设计语言中的类,提供了方法的实现。其他类可以访问mixin类的方法而不必成为其子类在Vue.js中,Mixin是一种灵活的代码复用方式,允许我们将组件之间的公共逻辑抽取出来,从而提高代码的可维护性和可重用性Mixins的基本概念定义Mixins:你可以创建一个包含数据、计算属性、方法和生命周期钩子的对象,然后在多个组件中复用它。示例://myMixin.jsexportco
- vue2-mixin的定义与和使用
16年上任的CTO
VUE2vue.js前端javascriptmixin
文章目录1.什么是mixin2.局部混入3.全局混入4.多mixin混入冲突4.1替换性4.2合并型4.3合并队列型4.4叠加性5.使用场景#vue2-mixin的使用1.什么是mixinMixin是面向对象语言中的一个类,提供了方法的实现,其他类可以访问mixin类的方法而不用继承Mixin类通常作为功能模块使用,在需要该功能的地方进行混入,有利于代码复用,又避免了多继承的复杂在Vue中,Mix
- JS 深入理解代码复用模式
天涯学馆
大前端&移动端全栈架构javascript原型模式前端
目录对象Object构造函数组合/混入(Mixins)模块化高阶函数装饰器设计模式其他复用技术JavaScript中的代码复用模式,需要探讨多种实现代码复用的技术手段和策略,包括但不限于原型继承、构造函数、
- CSS工具与工作流
天涯学馆
大前端&移动端全栈架构css前端
CSS工具与工作流是前端开发中的重要组成部分,它们帮助开发者提高编写、维护和优化CSS代码的效率。以下是一些关键的CSS工具与工作流实践:代码组织与结构预处理器:如Sass、Less或Stylus,提供了变量、嵌套规则、混合(mixins)、函数等特性,使得CSS更易于管理和维护。模块化:将CSS分解成小的、可管理的模块或组件,常用的方法有BEM(BlockElementModifier)、SMA
- 【算法笔记】洛谷 - 贪心算法 - P1208 [USACO1.3] 混合牛奶 Mixing Milk
仟濹
算法学习笔记算法笔记贪心算法c++c语言
2024-12-26-第43篇洛谷贪心算法题单-贪心算法-学习笔记作者(Author):郑龙浩/仟濹(CSND账号名)洛谷P1208[USACO1.3]混合牛奶MixingMilk文章目录洛谷P1208[USACO1.3]混合牛奶MixingMilk题目描述输入格式输出格式样例#1样例输入#1样例输出#1提示:思路:代码:题目描述由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要。帮
- . 如何在 Vue 3 中使用组合式 API 进行代码的逻辑复用?
JJCTO袁龙
Vuevue.jsjavascript前端
如何在Vue3中使用组合式API进行代码的逻辑复用?在Vue3的生态中,组合式API(CompositionAPI)引入了全新的方式来构建组件,使得逻辑复用变得更加简单和灵活。在传统的选项API中,逻辑复用通常依赖于混入(mixins)和高阶组件(HOCs),并且这两者在某种程度上可能导致代码的复杂性及可读性问题。而组合式API通过函数的方式,使得逻辑复用变得更加明确且易于管理。本文将通过示例,带
- 使用sass的混合插入模式进行@media响应式媒体查询做自适应开发
miao_zz
csssass媒体前端
使用sass的混合插入模式进行@media响应式媒体查询做自适应开发//定义混合指令并传参数@mixinrespond($breakname){//控制指令@if$breakname=='phone'{//手机端=1201@media(min-width:1201px){//向混合样式中导入内容@content;}}}.mz-col{border:1pxsolid$borderColor;@inc
- 第十节: SASS @use 的使用
正小安
#sasssass前端
SASS@use的使用@use是在Sass1.23.0版本中引入的,用于替代@import@import:传统的文件引入方式,可能导致全局命名冲突和重复加载。@use:现代的模块化引入方式,提供了更好的作用域管理和避免重复加载。@forward:与@use结合使用,用于将一个模块的成员公开给其他模块,提供了一种筛选和重命名成员的方法。作用从其他Sass样式表加载mixin,function和变量,
- python数据库事务_Python数据库事务编程
weixin_39806808
python数据库事务
python操作mysql数据库Python标准数据库接口为PythonDB-API,PythonDB-API为开发人员提供了数据库应用编程接口。Python数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFlymSQLMySQLPostgreSQLMicrosoftSQLServer2000InformixInterbaseOracleSybase你可以访问Python数据库接
- Django Admin管理后台导入CSV
背着吉他去流浪
django服务器python
修改管理模型,代码如下:classCsvImportForm(forms.Form):csv_file=forms.FileField()@admin.register(Hero)classHeroAdmin(admin.ModelAdmin,ExportCsvMixin):...change_list_template="entities/heroes_changelist.html"defge
- el-tree的封装
星期五の夜
vue.jselementuijavascript
{{node.label}}importprojectSelectMixfrom'iac/base/components/mixins/projectSelectMix.ts'exportdefault{components:{},mixins:[projectSelectMix],props:{isOperate:{type:Boolean,default:true}//是否有编辑操作},dat
- scss 和css 的区别 scss变量和css变量的区别
我有一棵树
cssscss前端
scss和css的区别语法差异:CSS使用大括号{}和分号;来定义样式规则和属性。SCSS使用了Sass的语法,它允许使用类似编程语言的结构,如变量、嵌套规则、混合(mixins)和继承等。嵌套规则:在SCSS中,你可以嵌套CSS规则,这使得代码更易读和组织。在CSS中,嵌套规则不被支持,你需要每个规则都分别书写。变量:SCSS允许你定义变量来存储颜色、字体、尺寸等,以便在整个样式表中重复使用。混
- React & Typescript:组件的入门实例
荷包蛋_
typescriptreactjavascripttypescript前端reactjs
React组件的演化组件复用方式优势劣势状态类组件(Class)发展时间长,接受度广泛只能继承父类作为一种传统开发模式,会长期存在Mixin可以复制任意对象的任意多个方法,实现组件间的复用组件间相互依赖、耦合,可能产生冲突,不利于维护被官方抛弃高阶组件(HOC)利用装饰器模式,在不改变组件的基础上,动态地为其添加新的能力嵌套过多调试困难,需要遵循某些约定(不改变原始组件,透传props等)能力强大
- vue-cli webpack 打包报错:Unexpected token: punc (()
曹天骄
vue
本来项目完美打包,后来我增加了一个插件vue-ionicons,打包build就是报错:ERRORinstatic/js/8.017e5cf2d2f1a552890d.jsfromUglifyJsUnexpectedtoken:punc(()[./node_modules/vue-ionicons/dist/ionicons-mixin.js:7,0][static/js/8.017e5cf2d2
- tailwindcss
readmancynn
前端css
什么是TailwindCSSTailwindCSS是一个可定制化的CSS框架,最大的特点是功能类优先,和我们知道的bootstrap,elementui,antd,veui等框架一样。将一些CSS样式封装好,用来加速我们开发的一个工具。简单理解TailwindCSS就是CSS的lodash,他是一个增强工具类,你可以用原子类的方式写样式,也可以基于PostCSS作为工具函数做Mixin。核心概念功
- python 中Mixin混入类的用法
npm_run_dev__
pythonjava开发语言
最近在看sanic的源码,发现有很多Mixin的类,大概长成这个样子classBaseSanic(RouteMixin,MiddlewareMixin,ListenerMixin,ExceptionMixin,SignalMixin,metaclass=SanicMeta,):于是对于这种Mixin研究了一下,其实也没什么新的东西,Mixin又称混入,只是一种编程思想的体现,但是在使用过程中还是有
- elementui el-table表格自动循环滚动【超详细图解】
舊時王謝堂前燕
elementuivue.jsjavascript
效果如图1.当表格内容超出时,自动滚动,滚动到最后一条之后在从头滚动。2.鼠标移入表格中,停止滚动;移出后,继续滚动。直接贴代码importmixinsfrom"./mixins";exportdefault{data(){return{loading:false,tableData:[],scrolltimer:'',//自动滚动的定时任务}},mounted(){this.autoScroll
- react antd less-loader 配置
mstark
reactconfigreact
问题说明由于react的版本不同,观看教程时react的配置文件无法对应,导致less-loader的配置出现问题,而且less版本3.0之后,在react加载less文件时会报出错误:.bezierEasingMixin();InlineJavaScriptisnotenabled.Isitsetinyouroptions?如何修改antd主题EONSPC错误问题解决安装less-loaderl
- uni-app解决在qq和微信浏览器两个标题情况
_当时只道是寻常
javascript前端vue.js
在main.js中配置以下代码就可以解决Vue.mixin({mounted(){//#ifdefH5if(this.isWeiXinBrowser()||this.isQQBrowser()){this.navTitle()}//#endif},methods:{//#ifdefH5isWeiXinBrowser(){letua=navigator.userAgent.toLowerCase()
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http