五千年(敝帚自珍)

主题:【原创】jquery 和 vue -- 铁手

共:💬13 🌺94
全看分页树展 · 主题 跟帖
家园 我不是一个vue的重度使用者,虽然vue会是首选。

另外我开发企业内部网站比较多。对于大流量像西西河这样不是很有经验。

下面是我的理解,没有读过vue源码,不一定正确,主要是建立一个理解它思想模型。

1. Vue vs. div

一个Vue相当于一个div元素的。一个HTML通常从一个div开始嵌套,一个Vue工程也是一个new Vue()开始,然后里面再一个个Vue对象嵌套。Component 是一个定制化的Vue对象。当你开始用脚手架开始,用.vue文件来开发时,表现得特别明显。

一个.vue文件包含 模板(HTML), JS代码(预先定义好原形的类method), css 。模板顶级element有并且,只能有一个顶级div.

总结一下, vue 就是一个加强版的div, 使得对这个div的style,attributes, event等好处理。把Vue对象一一对应起来有助于整齐思考网页的设计。

2. vue.component(), vue.extend(), vue.component()

一个.vue文件对应于一个component,这是一种IDE友好的可视化写法,比vue.component()这种纯代码直观的多。也有利于组织源代码。

但是这不是标准的js语法,所以Vue需要先把这个文件作为普通的字符串,装载再语法解析,翻译成标准的js文件,再生成DOM树,当然夹杂很多优化,不然就没有意义了。这个事情有vue.compile()来完成。

所以如果你用.vue文件来写component, 基本不需要使用compile, extend etc. 脚手架就是一个自动调用这些api的框架,用来解释自己的DSL(domain specific language),那些.vue文件。

3. vuex,router

这些客户端路由主要用于SPA(single page application),西西河更类似行为网站,而不是应用Application,没有太多客户端状态需要保留和切换,不是很有用。这些客户端路由基本上是利用业内跳转(#),或者history api(浏览器的前进后退按钮来实现)。西西河目前的API挺好,只需要把他们转换成返回数据I,用component发送ajax访问就好了。

4. SEO

我做intranet网站多,所以没什么经验。

Google 的爬虫是爬下来,用chrome render后才索引的,我觉得西西河不用担心js使用太多这个问题。其他主流估计也差不多。

另外vue也只支持server 端 render。但是要用node js。不知道西西河的后端是是什么。

通宝推:铁手,
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河