关于博客主题的一些升级
2月中旬会配合着发布新版本的博客主题Vanthink-Theme.也就是当前博客的主题。主要是几个优化和新特性: slide可能改变,不再用svg的这种了。 字体会换成svg的形式 文章内容的字体和一些文本样式的修改 更换文章推荐的图标 顶部导航栏样式更新 另外一个项目是七牛上传的项目,希望支持markdown的 惰性图片加载和上传,这样把图床切回来。 参考效果文章 详情 »
Web 开发技术分析,前端开发学习历程。
280 篇文章2月中旬会配合着发布新版本的博客主题Vanthink-Theme.也就是当前博客的主题。主要是几个优化和新特性: slide可能改变,不再用svg的这种了。 字体会换成svg的形式 文章内容的字体和一些文本样式的修改 更换文章推荐的图标 顶部导航栏样式更新 另外一个项目是七牛上传的项目,希望支持markdown的 惰性图片加载和上传,这样把图床切回来。 参考效果文章 详情 »
WEEX在今年一月份宣布在web端对vue渲染的支持,也就是说,今后你可以用写vue的的方式去写weex 项目。在升级新版的weex的时候大家一定记得去官网看下diff [Weex 和 Vue 2.x 的语法差异]https://weex-project.io/cn/references/migration/difference.html。 如果我们在开发第三方插件的时候,我们同样需要注意对与插件写法上的差异。 第三方组件 老版本我们在第三方组件的时候,大致是这样的: // 设置 标签属性 const attr = { // ... } // 设置样式 const style = { // ... } // 设置事件响应 const event = { // ... } // 初始化函数 function init (Weex) { const Component = Weex.Component const extend = Weex.utils.extend // the component's constructor function Hello (data) { Component.call(this, 详情 »
原文地址: http://www.jianshu.com/p/1fa6e9c0799f 最近发现 React Native 官方博客上面这篇介绍 Hot Reload 原理的文章,仔细阅读了一下,顺便翻译为中文,以飨读者。本文不少内容加入了译者的理解,并没有严格字对字翻译,英文水平不错的同学可以直接阅读原文 React Native 的设计目标是为开发者提供最好的开发体验,其中很重要的一点就是尽量缩短文件修改后到看到修改所产生的变化之间所需的时间。我们的目标是将这个循环所需的时间降到 1 秒以下,即使你应用的功能和体积在不断的膨胀。 通过下面三个主要特性我们离目标越来越近: 基于 Javascript 进行开发,避免了长时间的代码编译过程 实现了一个名为 Packager 的工具,用来将 es6/flow/jsx 文件转换成虚拟机可以理解的普通 JavaScript 语言。Packager 被设计为一个服务器,从而能够在内存中保存当下的状态,实现快速的增量更新,同时可以使用系统的多核 CPU 提高性能。 新增了一个名为实时加载(Live Reload)的特性,实现保存代码修改后自动重新加载 APP 详情 »
为什么选择GraphicsJS 前端可以选择的svg库,有很多,比如snap.svg或者BonsaiJS当然这些库也是各有优势。而这篇文章主要就是说GraphicsJS,让大家知道他的优势和特点。 轻量级,具备灵活的 Javascript API 来自AnyChart团队,全球非常出名的可视化团队。 GraphicsJS 是一个开源项目,无需商业授权 对于低版本的浏览器的支持,支持IE6 对于图像和动画支持比较好,帮助开发者创建复杂的交互效果 GraphicsJS 基本使用 <style> .stage{ width: 280px; height: 280px; } </style> <div class="stage" id="rect1"></div> <script src="https://cdn.anychart.com/js/ 详情 »
weex 是阿里巴巴集团在去年4月份开源的一个使用JS进行代码编写,多端实现运行的开源框架。这也是国内少有的大型开源项目(目前stars 的数量也超过了10K)。 Write Once Run Everywhere weex的的目的就是为了解放生产力,让更少的人去维护更少的代码。weex虽然目前还在密集开发阶段,可用到内部组件,相对少一点,由于是开源项目,因此大家都可以自己贡献自己的开发组件。 其中weex的组件有两种,一种是完全基于提供的api和element去进行封装扩展,类似weex-percentage-circle. 你完全不需要会任何的android/iOS知识和技能就完成一个简单的组件封装。另外一种,叫三方扩展插件可能更好,它需要你在实现某些功能的时候,需要去写三个平台的支持 需要支持ios/android/web。当然这并不是非常严格的限制,比如你就支持了web,ios,但是如果开发者开发的APP就没有andorid的要求,这样的需求也是存在的。 先简单说下第一种,其实非常简单。 我们只需要简单编写一个weex-demo.we文件即可 <template> <div><text>{{textstr}}</text></dv> </template& 详情 »
yeoman是一款非常好用的项目模版工具,你可以用它快速生成一个指定的项目,比如react+ webpack或者是angular的项目。它通过命令行会话去完成一定参数配置。 如何使用 首先我们要全局安装 yo 模块。yo是yeoman 的命令行工具模块。 npm install -g yo 然后我们需要选择我们需要生成的具体项目的模版,你可以在discover generator找到你要的项目模版,比如react、angular、vue、Bootstrap等。 然后你需要全局安装这些模块比如 webapp。 npm install -g generator-webapp 安装完成后,只要执行命令,即可生成一定的项目的目录了。我们创建一个目录app-demo,然后进入目录,执行: yo webapp 这样你可以看到的命令行提示选择: 你可以看到项目的执行流程,拷贝,然后安装依赖。 安装完成后,我们就可以看到一个webapp的目录了,这样无疑节省了我们初始化项目的时间。 使用generator-weex-vue 上周weex发布了新的版本宣布对vue2.0的支持,我们可以通过写vue的方式来写weex项目,除了官方的工具,现在可以使用yeoman来生成一个weex项目。 同样你只需要安装模块 generator-weex-vue就行了。 然后执行 yo weex-vue 项目变创建成功了。 项目支持的一些命令: 详情 »
原文地址 : https://tadeuzagallo.com/blog/react-native-bridge/ @ Tadeu Zagallo 这篇文章主要希望大家能够理解 React Native的一些基本原理,我们会聚焦在 React Native内部 native 与 JS之间的通信问题。 主线程 再说其他事情前,我们需要知道在 React Native中有这样三个 主线程: shadow queue: 用于界面 的布局 main thread: UIKit 做自己的事情 JavaScript thread: 运行JS的地方 每个 Native 模块 都有一个 GCD Queue, 除非它特意指定。 实际上 shadow queue 也是一个 GCD Queue 而不是一个线程 Native 模块 如果你不知道如何创建 Native Module,可以移到这里阅读详情。 @interface Person 详情 »
[项目地址](https://github.com/Vanthink-UED/vue-core-image-upload) 前排撒花 💐😄。。。 Vue-Core-Image-Upload ,一款轻量级图片裁剪上传插件,你值得拥有。 经过几个月的使用和测试,我们终于合并了2.0.对于使用vue2.0的用户而言,现在直接使用 npm install vue-core-image-upload --save 去看看Demo吧。 如果你继续使用1.X的版本的话,你可以 npm install vue-core-image-upload@1.0.0 --save 我们保持了api的不变。 Code Example (ES6) import VueCoreImageUpload from './vue.core.image.upload.vue'; new Vue({ el: '#app', components: { 'vue-core-image-upload': VueCoreImageUpload }, data: { src: 'http://img1. 详情 »
一般大多情况可能我们都只会遇到一次性打包的情况。偶尔我们可能需要正对同样的内容打包两份不同的文件。这个时候也非常好办,就是把配置放到一个数组里即可。 var path = require("path"); var webpack = require("../../"); module.exports = [ { name: "mobile", entry: "./example", output: { path: path.join(__dirname, "js"), filename: "mobile.js" }, plugins: [ new webpack.DefinePlugin({ ENV: JSON.stringify("mobile") }) ] }, { name: "desktop", entry: "./example" 详情 »
本文主要是随笔记录而已,自行忽略。 vue/src/core/util/env.js 主要是用于环境的判断诸如浏览器 node以及浏览器的属性, 详情 »