预览模式: 普通 | 列表

来自知乎的前端转行咨询及我的回答

***落霞 :你好!大牛!我现在处于转行迷茫期!有些问题想你帮我解答下,谢谢!我毕业后在上海做了三年的船舶管系生产设计,四月中旬辞职回武汉,想转前端开发,因为我姐夫是做后端的!他推荐我转前端,主要是工资比船舶设计类高!我五月份在我姐夫家根据慕课网,W3C自学了一个月前端,对html.css.Javascript基础有了些基本掌握!因为我在家呆一个月了,心理有些烦躁想出去找一个前端实习的工作,我姐夫也认同,说能找到一个公司边做边学更好,我当时想的无所谓工资多少,有公司要就行!投了好多前端实习,或0基础学习的公司,结果去面试都是培训机构!当然我也被这些培训机构洗脑了,想花2万去培训,我姐夫坚决不同意,最后我姐夫建议我把简历上前端工作经验写为半年或一年,找个小公司进去!他的一些前端同学也建议我这样!但我心理是非常排斥的!先不说骗人吧!即使有公司叫我去面试,问我一些项目经验问题,估计我就慌了!因为不是自己做的!所以我想问的问题是,是不是现在所有公司都招那种有项目经验的人!像我这种初学者都找不到工作!还有就是为了面试虚构项目经验好不好?希望你能帮我解答!谢谢!

---------------------------------------

你好。

1、我不是大牛,只算熟练工。

2、公司当然只招熟练工。假设你自己将来做了老板,你想想看,你招初学者进来做啥?-----实际项目你敢给实习生做?质量不过关,总要人擦屁股。坐在那里还占个位子和电脑。除非实习生给钱给公司。

3、越是小公司,越是要做实事的人,进去以后不会给你啥过渡期的。做不了事就走人。虚构经验不是不行,是混不过去,谁也不傻。

查看更多...

分类:培训与招聘 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 228

 vue-resource1.2.0版本,发现只能读取.json后缀的文件,换个后缀就不灵了。最终找到答案:

1、把vue-resource.js升级到1.3.1
2、调用处加一句 responseType:"json",
 
Javascript代码
  1. <script src="js/vue2.js"></script>  
  2. <script src="js/vue-resource1.3.1.js"></script>  
  3.   
  4. var call = Vue.http({  
  5.       method:'GET',  
  6.       responseType:"json",  
  7.       url:"mocks/news1"  
  8.       });  
  9.   
  10. call.then(function (e) {  
  11.     console.log(e.body);  
  12. });  
 
 
分类:VUE研究 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 145

 vue-finger.js是将alloy_finger.js用于VUE2.0的一个包装小程序。在网上一直找不到跟VUE2.0很无缝搭配的组件,无奈找了个简单替代品。引用时要将两个库都引入:

XML/HTML代码
  1. <script src="js/alloy_finger.js"></script>  
  2. <script src="js/vue-finger.js"></script>  

示例图如下:

 

DEMO在此:http://258754.cn/2017/jzz/test_swipe.html

用F12模拟手机观看

分类:VUE研究 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 165

我常用的gulpfile.js配置与sublime组件列表

我自己的gulpfile.js代码: 

这样运行:

gulp --u DIRNAME

--u是自定义参数,这样可以快速建立DIRNAME目录的虚拟站点,并启动所有监听服务。当你有很多不同的目录时,这样做很方便。

Javascript代码
  1. var gulp = require('gulp'),  
  2.     // concat = require('gulp-concat'),  
  3.     // uglify = require('gulp-uglify'),  
  4.     // mock = require('n-mock'),  
  5.     browserSync = require('browser-sync').create(),  
  6.     // fileinclude = require('gulp-file-include'),  
  7.     // minifyCss = require('gulp-minify-css'),  
  8.     sass = require('gulp-sass')  
  9.     autoprefixer = require('gulp-autoprefixer')  
  10.     // directoryMap = require("gulp-directory-map")  
  11. ;  
  12.   
  13.   
  14. gulp.task('default'function() {  
  15.     var dir = gulp.env.u;  
  16.     console.log( "----------------当前处理目录为:/"+ dir +"----------------" );  
  17.     browserSync.init({  
  18.         server: {  
  19.             baseDir: dir,  
  20.             index: "index.html"  
  21.         }  
  22.     });  
  23.   
  24.     // 自动刷新  
  25.     gulp.watch(dir+'/*.html'function() {browserSync.reload(); });  
  26.     gulp.watch(dir+'/scss/*.scss'function () {  
  27.         return gulp.src(dir+'/scss/*.scss')  
  28.             .pipe(autoprefixer({  
  29.                     browsers: [  
  30.                     "last 10 versions",  
  31.                     "last 12 Chrome versions",  
  32.                     "Firefox > 20",  
  33.                     "ie 6-8"],  
  34.                     cascade: true  
  35.                 }))  
  36.             .pipe(sass().on('error', sass.logError))  
  37.             .pipe(gulp.dest(dir+"/css"));  
  38.   
  39.     });  
  40.     gulp.watch(dir+'/css/*.css'function() {browserSync.reload(); });  
  41.     gulp.watch(dir+'/js/common.js'function() {browserSync.reload(); });  
  42.   
  43. });  

我常用的sublime插件:

ColorPicker--色彩选择器

查看更多...

分类:前端研究 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 208

寻找IOS风格的datapicker在vue2下运行

 目前我们做的几个移动端项目,使用vue2多页面方式,js文件用<script>方式引入。因为不能使用import方式引入组件,这就意味着网上大量的VUE2第三方组件,无法使用。

我一般建议,VUE2尽量使用element-ui等嫡系UI,设计样式也尽量与element贴近。但是element缺少一些组件,比如IOS风格的日期选择器(下图)。
 
我花了几个小时寻找这个datapicker组件,github、segmentfault,但没发现可用的第三方。山穷水尽之时,突然想起,这个组件最早出现在WEUI中,是否可以从WEUI提取?WEUI之前配合jquery使用,并没有跟VUE结合使用过,事后证明这只是我的一种错觉,WEUI本身是可以跟原生JS结合的,也就是说,可以跟VUE结合使用!
找到目标,开始写代码。但奇怪的是,datapicker没有完整的API官方文档,百度也查不到,最后还是通过谷歌翻墙,才找到答案。
WEUI的CSS还是容易改写的,我改写了部分CSS样式,以对应设计师的设计。
 
最后终于圆满解决!没有使用jquery。
 
主要代码如下:
 
methods:{
        clickH:function (ii) {
          var _dt = this.dtime;
          weui.datePicker({
              start:_dt[0][0],     
              end:_dt[1][0],       
              defaultValue: _dt[0],
              onConfirm: function (result) {
                  Vue.set(_dt[ii], 0, result[0]); //年
                  Vue.set(_dt[ii], 1, result[1]); //月
                  Vue.set(_dt[ii], 2, result[2]); //日
              }
          });
        },
        inquireH:function () {
          console.log('查询服务器');
        }
      },
      data: {
        pic:"images/bg1.jpg",
        dtime:[
            [2017,5,5], //日期选择器起始日期
            [2017,5,10]  //日期选择器最远可选日期
         ]
      }
 
分类:VUE研究 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 177

您好,我是湖南**大学大四的学生,去年11月开始在一家创业公司实习,但是最近公司人事告诉我,公司现在发展,前端人员他们招聘了另外一个有三年经验的,人员已经够了,然后刷知乎的时候,刚好有看到您的回答,感觉您经验丰富,技术深厚,想请问一下你们最近还在招聘吗?这是我以前写的一个线上简历https://***.github.io/demo_collection/现在修改了一下,您能帮我看一下对于找到工作有什么不足吗?打扰您了,万分感谢😊


我的回答:
 
1、我有不少朋友在招前端,好的前端市面上很缺。
2、看了一下你的简历,给几个建议:
 
- 把自己做过的项目、页面拷屏界面放出来,用图、表格来说事,越多越好。光从文字上理解,无法知道项目复杂度。尤其是对一些非专业的HR来说。
 
- 要高度重视前端的“布局”层面的技术。jquery也好,vue也好,都不是前端的传统自留地。对于刚毕业的你来说,企业需要你的技能点,一般都是布局。就是说,你能把页面排出来就好,响应式、移动端、兼容性,如果都能做得好,你就是不会JS,也没关系。
 
- 把你的简历、作品全都写在一个页面里,不要让人翻来翻去。
- 写简历要分时间、分条目、分自然段。这一点你做得不好。
- 技能点、分技能,采用脑图结构写清楚。写得越细越好,粗线条的技术名词,只能说明你对此技术了解不深。比如谈及bootstrap,你需要写明,你用过boot的什么皮肤套件,了解过哪些配套的插件,用它做过几个项目,在项目中重点攻克了什么难题?---甚至可以把这些经验写成小文章。这样用人单位会觉得你是“准专业的”。如果你对此技术了解不深,那就实事求是的说说,你做了哪些学习和探索,相信你不是一片空白。
- 你现在这个网站,并没有什么亮点,建议简化成一页式在线简历。把结构和CSS好好写写、搞点交互小动画,足矣。
 

 

分类:培训与招聘 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 170

网上沙盘(jquery)

 http://www.contactu.cn/2017/sp/demo2.html

 
适用场景:
一个全屏背景+自适应前景点的例子。窗口尺寸随便怎么变化都行。特别适合用于制作全屏沙盘类的案例。
 
原理:
根据容器尺寸,计算背景图、前景点的位置,前景利用css的transform-scale/translate子属性进行自适应。实际使用中,是用了我熟悉的tweenMax实现了快速转换,否则要用css的Matrix矩阵滤镜,俺不熟。
 
使用方法:
在设计稿中测量背景图尺寸,所有点的位置点。按我的例子放置,即可。
 
分类:我们的作品 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 242

很实用的一个长宽比锁定组件 for vue2.0

 功能点:

1、长宽比锁定,per参数为百分比,如果 高:宽=200:100,则per="200",默认宽高比为100:100(正方形)。

2、参数bg="images/c3.jpg",背景可带图片

3、link="a.html",可以带链接

HTML中调用:

XML/HTML代码
  1. <div id="app" v-cloak >  
  2.       <lock-div bg="images/c3.jpg" link="a.html" per="200"></lock-div>  
  3.       <lock-div><img src="images/p3.jpg"></lock-div>  
  4.       <lock-div per="50">里面也可以放文字</lock-div>  
  5.     </div>  

组件定义:

Javascript代码
  1. Vue.component('lockDiv', {  
  2.     props:{  
  3.         per: {type: [Number,String], default: 100 },  
  4.         bg: {type: [String], default""},  
  5.         link: {type: [String], default""}  
  6.     },  
  7.     data:function (){  
  8.         return  {  
  9.             hh:100  
  10.         }  
  11.     },  
  12.     template: "<div class='lockDiv' :style=\"{height: hh + 'px', backgroundImage: 'url(' + bg + ')'}\" @click='clickH'><slot></slot></div>",  
  13.     methods: {  
  14.         clickH:function(){  
  15.             if(this.link){  
  16.                 window.location.href=this.link;  
  17.             }  
  18.         }  
  19.     },  
  20.     mounted: function() {  
  21.         this.hh = this.$el.offsetWidth* this.per/100;  
  22.     }  
  23. });  

显示效果:

分类:VUE研究 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 388

VUE开发的三个阶段

长沙很多开发团队,看待vue还是一个新事物。我还记得半年前,一个项目经理从网站找到了iview这样的第三方组件库,准备使用,但是团队的现实情况是,vue刚开始使用,webpack没有使用经验。他还以为vue的第三方库跟jquery组件使用方式类似。

 
目前,身边也有不少朋友,还只把vue当页面渲染器用。并不太了解组件化方式。所以我画出这个阶段图,给vue传道时,可以节省一些口水。
 
选择适合自己的步调,不要太激进,一口吃不掉胖子。
脑图地址:
http://naotu.baidu.com/file/17f6177717e34b26775fa3bd8e91956e?token=f1078f80a16ed553
分类:VUE研究 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 461
练手做了个小例子。点击:
http://www.contactu.cn/2017/test_component.html

Tags: vue2.0组件

分类:VUE研究 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 393

 年后实战了两个移动端(前端)项目,都是使用的VUE2.0,做的是多页面类型(非SPA),地址:

 
收获:
1、让我可以熟练的运用FLEX布局。估计提升了50%的布局效率。原来的多层结构、乱七八糟的修补型代码都被淘汰了,结构、样式都更加简洁。
2、熟练使用scss。之前已经用了小半年。但是有时候没有形成自己的scss书写模式。这次两个项目,最大的收获就是,小项目,不再细致考虑重用,除了页头页尾、导航,其它的布局块,全都一个个写单独的结构。这样脑子里不用思考命名、重用这些问题,写起来极快。
3、VUE的mixins功能充分发挥。多页面模式下的“共性功能”,全部提出来放到common.js中的mixins代码中,不用再写到每个页面的vm结构中。
4、试验了多个第三方组件、库。对于vue2.0生态的众多第三方组件有了实战经验。真实使用了element-ui(饿了么开源)。
5、搞清了iscoll之类滚动插件的利弊。---这里被视频课程中的老师带着,绕了一个大圈。以后再专门说这个技术问题。
6、自己试着写了一个VUE的小组件,对于组件的template模板使用的几种形式,有了更多选择。在多页面开发模式下,一些共性功能块,还是值得提炼成组件的。我这次提炼的组件的,就实现了“锁定长宽比的图片容器”。这个功能在页面中大量存在,写个组件能大大的提升效率。

Tags: vue2.0

分类:我们的作品 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 981

最近跟着慕课网的教材实战了一个项目:http://coding.imooc.com/learn/list/74.html(Vue.js高仿饿了么外卖App)。我从vue1.0到2.0都撸了一下代码,做出了例子。本文讲到的一些坑,都是根据我的笔记整理的,菜鸟们可参考,大牛请无视。

 
一、是否要升vue 2.0
vue版本已经升到2.*,所有配套的vueRouter、第三方组件,都跟着升到2.0。1.0的淘汰指日可待。因此没啥好犹豫的,能用2.0就直接升吧。
目前所有的官方文档已经升2.0了,但是网上流传的大量例子,都还是1.0的,因此实践前,请一定注意版本!请一定注意版本!请一定注意版本!
 
二、是否要使用vue-cli
要实践vue组件化、单页面应用的例子,请一定使用vue-cli。我之前没有使用脚手架,自己用Webpack实验,太麻烦了!说多了都是泪。如果使用vue-cli,基本上跟着教程走就行了。再次提到版本问题!--目前(2017年2月)默认vue init命令,安装的是2.0的脚手架。
 
三、npm大坑
如果你是新人,并不需要兼容之前1.0版本,那么恭喜你,请直接入2.0坑 ------vue init命令很容易就完成了,接下来的npm i安装是一个大坑。我在新手群里看到一半以上的新人都卡在这里。npm说白了,就是要把所有的依赖项安装好。我从头装了一下vue-cli2.0,并统计了一下,node_modules目录下有87个子目录,140M。
 
但这个过程并不会很顺利!
我在数次安装vue-cli的过程中,都没有一次搞定。基本流程是,装完后运行一下npm run dev---报错---根据报错信息,用npm i --save *** 修复某个依赖---再run---再报错---再修复.....修复个五六次,最后才出现locathost:8080的提示,浏览器中出现第一个demo页,这时候才叫安装成功!
 
有时候,npm奇慢无比,5分钟以上还没装完。这时候要果断ctrl+c,再次npm,或转用cnpm---cnpm安装过程也有坑,此处不展开,请自行百度。
我在这里分享一个纯净包,可直接越过冗长的npm i过程,这个包里面已经带上了node_modules目录,解压后直接npm run dev即可调试。
 
四、单页面还是多页面
vue推荐的方式是单页面应用(SPA)。但是实际情况,就本地区(长沙)来说,现实工作中,多页面方式更普遍。多页面方式一样也可以使用vue强大的组件系统和脚手架。在github.com搜索“vue2 multipage”,会得到不少多页面脚手架。此处不展开。
 
五、关于npm run build的几个参数
如果你九死一生走到这里,能生成dist目录下的文件的话,这才迈入了真正的实战。
config/index.js可以配置输出,以下几项可修改成如下:
 
assetsSubDirectory: 'static',     //输出的依赖文件夹路径可自定义
assetsPublicPath: '',     //默认值是assetsPublicPath: '/',即引用的js以“/”开头,则必须在根路径下使用
productionSourceMap: false,     //不输入.map调试文件
 
总结:
 
越过以上几道关,VUE的开发环境就基本搭建成功。意味着你可以愉快的调试代码,按一下ctrl+s存盘,就能在浏览器中看到相应的变化。Vue接下来的一千多个大坑,都在后面等着你......
 
一些关于vue的实践将陆续首发到本人技术博客上,长沙前端开发与培训,www.contactu.cn
推荐一个资源站:https://www.awesomes.cn/subject/vue(感谢佳浩提供资源线索)

Tags: vue.js vue-cli

分类:VUE研究 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1486

2017年VUE2.0试手项目--奔奔算术

利用春节假期,系统的学习了VUE2.0/组件/webpack/SPA技术。正好儿子每天要做口算题,就利用这些新学的知识,花2天时间,为他写了一个移动端的小型出题软件。

 
 
 
 
功能点:
  • 随机出题,加减均可;
  • 可进行一些基础模式的配置,
  • 对加减法做了一些优化,避免出现太简单的题目;
  • 练习模式下,可进行计时、自统计错题功能
  • 一些动画效果用GSAP实现
 
技术点:
  • vue2.0组件
  • vue-cli2.0+webpack生成单页应用
  • sass、flex布局
  • localStorage读写
分类:我们的作品 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 564

2016年终总结

 经历:

1、2016年,网站业务量减少,最大型的企业网站项目为云龙集团网站项目。
2、以顾问方式,为两家大型软件公司提供界面服务。
3、以顾问方式参与了WK及美一点移动端APP项目。更深刻的了解了创业型项目的甘苦。
4、使用d3.js技术框架,黄花机场触摸屏项目 。
 
技术:
2015年主要是把前端新概念进行了蜻蜓点水式的了解。2016年则是以VUE为突破口,完整的了解了MVVM体系的方方面面。过年前这个月,利用VUE1.0体系,重写了一个袖珍的SPA网站。然后购买了慕课网的【Vue.js高仿饿了么外卖App】的收费课程。两个项目互相印证。之前一直对VUE的组件、路由体系不太了解,此次无法回避,把这些知识点翻来覆去的看了个遍。也在segmentfault.com上提了不少问题,上面的网友很热情。
 
另外熟练了git命令行方式,熟练使用github.com。
通过优特项目,更加熟悉前后端配合/mock测试方式。
 
工具:
使用了更多基于nodejs的工具软件。对于Webpack这个大坑有了更多了解(不懂的也仍然很多)。
 
合作与分享:
继续以顾问方式参与项目。也带了几个前端学生。在知乎上回答了一定数量的问题,得到了一些关注。
 
生活:
搬家到河西,重新构建自己的工作圈。花了很多精力在孩子的学业上。
坚持跑步,完成了第二届长马(半马)完赛。与儿子一起踢足球、打乒乓。
 
2017愿景:
使用VUE构建具体的组件化项目。
学习小程序或是react native,打通APP开发通路。
分类:开发心得 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 619