西西河

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

共:💬13 🌺94 新:
全看分页树展 · 主题 跟帖
家园 太感谢了,一并请教

初学 Vue,还没仔细看 Vuex 和 Vuerouter。现在也不敢大规模改,只是对部分地方用 Vue 来实现一些功能的加强。

曾经考虑过服务器端只取数据,然后完全交给客户端来做显示,但是考虑到搜索引擎,我现在大致确定所有需要被搜索引擎检索的内容由服务器端送出,Vue 在客户端做一些点缀。

本来以为可以用 slot,只要搜索引擎 bot 能看到 slot 里面的内容就可以,不过看起来也只能是一个 slot 的情况下。用 named slot,那些内容就被忽略了。

所以暂时不能采用服务器送所有数据,然后由客户端的component 来显示。这个方案看上去的确很诱人,但是我不知道怎么对付搜索引擎的检索。按我的理解,目前为止,大概也就是google才会解析检索 javascript 形成的内容。或者专门做一个版本供搜索引擎检索?

你和 @少侠请留步 都提到 每个 component 自己调一次 ajax 来获得数据。我之前没想到这点,你们一提,有茅塞顿开的感觉,估计能解决我现在的问题。

以看单帖跳出来的这个窗口为例子。

现在的做法是,ajax 获得服务器来的内容,直接塞到弹出窗口里的一个 div。如果用 Vue 的话,是不是用一个 watcher 来响应用户的点击,然后去后台去数据?因为前面提到的搜索引擎的考虑,我现在没法在每个帖链接上做 vue 的 v-on:click。

单帖内容里,有一部分是另外的 component,这些也需要显示。现在大概有两个思路,一个是在前台做组件搭模板,后台只提供数据。不好的地方是,后台需要根据情况准备两个版本,完整页面一个版本,弹出一个版本。另外一个思路,应该是老思路了,就是后台只有一个版本,ajax 抓回来的内容想法让它融入到 Vue里,包括里面的 vue component。眼下这些返回的内容只被看作是纯字符串。我又看了一下 Vue 的文档,也许 Vue.extend() 再加上 $mount 可以实现这个方案? Vue.extend, Vue.compile 有什么差别?

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


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

Copyright © cchere 西西河