33
回答
高手问答第 177 期 —— iView 作者带来的 Vue.js 实战分享
华为云实践训练营,热门技术免费实践!>>>   

OSCHINA 本期高手问答(11 月 15 日 - 11 月 21 日)我们请来了@aresn 为大家解答关于 Vue.js 实战方面的问题。

梁灏,网名 Aresn,基于 Vue.js 的高质量开源 UI 组件库 iView 的作者。目前在大数据公司 TalkingData 负责可视化基础架构。创办了程序员社区 TalkingCoder。

提到 Vue.js,使用过的开发者普遍都会它的易用性和轻量级赞不绝口。Vue.js 是一个轻量高效的 MVVM 框架,提供了响应式编程、组件化等强大的能力,配合丰富多彩的生态圈和工具链,可以让你完成非常复杂的前端应用。

在前端框架和库百家争鸣的时代,Vue.js 是其中一支新秀,Vue.js 易于上手、搭建模式简便、模块化编程结构完善等特点,使得它成为众多新一代前端框架中的佼佼者。作为这个时代身处变革中的前端工程师,我们也应不断学习、前进,努力构建一个精彩的多元化世界。

本期的高手问答嘉宾 Aresn,基于 Vue.js 开发了一个 UI 组件库 —— iView。iView 自发布起就一直拥有着超高的人气,并且评价甚好。这次我们邀请到了 Aresn 和大家一起探讨 Vue.js 实战相关的问题。

本期高手问答内容:

  1. Vue.js 的核心功能
  2. Vue.js 的性能表现
  3. Vue.js 的使用经验、技巧分享
  4. Vue.js 前端工程化之组件化和插件的使用
  5. 基于 Vue.js 开发 iView 的心得和经验分享

或有其他相关问题,也欢迎大家积极提问!

为了鼓励踊跃提问,@aresn 会在问答结束后从提问者中抽取 5 名幸运会员赠予《Vue.js实战》一书。

源码及答疑:https://github.com/icarusion/vue-book
购买链接
天猫:https://detail.tmall.com/item.htm?id=559480603657
京东:https://item.jd.com/12215519.html

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。
下面欢迎大家就 Vue.js 方面的问题向@aresn 提问,请直接回帖提问。

举报
局长
发帖于2周前 33回/3K+阅
共有33个答案 最后回答: 2天前

@aresn

首先要赞一下iview!我们组内是iview的重度用户,很多组件我们都针对业务场景进行了二次封装~

之前由于iview在rc.13之后对table的render函数引入了无法向下兼容的api,导致我们有大量的返工适配工作~

我想问一下引入这个更新的原因是什么?后续还会出现这种对于开发者来说不太友好的更新吗?

 

--- 共有 3 条评论 ---
aresn@koybe 回复@koybe : 把 Render 要渲染的内容,单独写成一个 .vue 的组件来使用,可以参考 iView 文档 Table 可展开的示例 1周前 回复
koybe 回复 @aresn : 确实是~ 不过render函数里面的 h 感觉不太好用,稍微复杂点,写出来的代码就很难读了。 我们目前是引入了jsx来一定程度的解决这个问题,但某些vue指令没法直接用,有些实现会比较曲折 对于render里面的元素比较复杂的场景,你这边有没其他的建议哈 1周前 回复
aresnrc.13 之前用了黑科技来处理 Table 的自定义单元格渲染,当时主要是沿用 iView 1.x 的 API,之所以废弃改用 Render 是因为旧的方法在很多地方局限性太大,而且有些问题是无法解决的,改用 Render 函数后更为灵活统一。 1周前 回复

@aresn vue这类框架还是适合于spa这样的应用,对于微信公众号这样的应用,底部15个菜单这样的场景是否适合?

--- 共有 1 条评论 ---
aresnVue 的用法也分两类,常见的就是 SPA 下用 Webpack 编译,但是跟 jQuery 一样,也是可以通过 script 标签引入的,也就是多页面。如果你的应用是像知乎那样的复杂系统,肯定要用 Webpack来做,如果只是简单的营销页面上面的,注重 SEO,可以考虑后端渲染,当然,Vue 也提供了 SSR 解决方案,及 Nuxt.js 集成方案。 1周前 回复

@aresn vue组件嘈的设计是不是让组件设计时灵活性降低

--- 共有 2 条评论 ---
quanwei9958 回复 @aresn : 然而如果组件作者不提供对应的slot,那么就不可能渲染出对应的内容。例如作者偷懒传入的title只有个字符串属性,而我想渲染一个title+badge就基本上不可能了。 1周前 回复
aresnslot 是 Vue 组件的精髓,按 2-8 原则,大部分时候是很实用的,如果遇到极其极端的场景,也可以用 Render 函数,充分发挥 JavaScript 编程能力。 1周前 回复

@aresn ,感谢出了这么优秀的产品iView,已经使用做了多个业务。

iview 是一个的框架,引入意味着全部业务的改写。但是有很多老的业务,没有办法一下引入,就意味着要对以前很多jquery 插件的兼容,能不能讲讲对 jquery 插件兼容的问题。

还有本身的框架中的属性和功能越来越多,能不能提供 typescript 减少对文档的依赖?

--- 共有 1 条评论 ---
aresntypescript 会在未来逐步支持。关于 jQuery 的使用,没有什么问题吧,Vue 和 jQ 一起用,我们之前的老项目都是这么过来的 1周前 回复

@aresn您觉得iView和element-ui 相比优势是什么?

--- 共有 1 条评论 ---
aresn组件更丰富,iView 有50+组件,Element 大概30左右,UI 更精致,文档更详细。 1周前 回复

@aresn

我一直比较好奇如果类似电商的网站采用vue来开发的话,有什么利弊吗?

对于没有很大访问量的类电商网站,如果采用vue+webpack+express+mongodb架构会有什么弊端?

--- 共有 6 条评论 ---
aresn 回复 @绫小路清隆 : 前端渲染的百度收录不上 1周前 回复
开源中国-林俊杰 回复 @aresn : 请问为何SEO需要在服务端渲染? 1周前 回复
苦逼的前端 回复 @aresn : 好的,非常感谢 1周前 回复
aresn@苦逼的前端 回复@苦逼的前端 : 没有 1周前 回复
苦逼的前端 回复 @aresn : 除了IE8和SEO的话,用VUE开发类电商还有什么其他的弊端吗? 1周前 回复

@aresn 你好,有个疑问。和 element-ui 一样,iView 的 Tooltip 使用时要包裹需要 tip 的组件比如 button。有几个需要 tip 的 button,就要套上几个 tooltip 标签。为什么不能复用呢?让 buttons 共用一个 tip,只是切换 tip 内容,是因为 tip 定位的问题吗?

--- 共有 1 条评论 ---
aresniView 的 API 设计如此。 你可以进一步封装。 1周前 回复

@aresn 你好,请教:webpack生产环境打包,每次build js、css的文件名都不一样,随着每次发布,生产环境上的文件越来越多,有啥好的办法解决该问题么?

--- 共有 1 条评论 ---
aresn写好 shell,每次打包前,先把 dist 清空。 1周前 回复
顶部