Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用VueJS2.0模拟Pjax_Javascript_Wordpress_Vuejs2 - Fatal编程技术网

Javascript 使用VueJS2.0模拟Pjax

Javascript 使用VueJS2.0模拟Pjax,javascript,wordpress,vuejs2,Javascript,Wordpress,Vuejs2,最近我决定看看VueJS2.0。因为我仍然主要使用各种CMS系统(Wordpress、TYPO3、OctoberCMS等),所以我想尝试实现类似pjax的页面加载。令我惊讶的是,事情并不像我想象的那么简单 是否有方法替换页面的某些部分并重新初始化VueJS中的组件 我可能应该解释一下我为什么要实现这样一个特性。在过去的几年里,我发现使用前端框架开发功能丰富的网站更容易、更快。然而,由于大多数客户需要一个后端来管理他们的网站,使用一个已经存在的CMS是不需要动脑筋的。 在过去,我使用Angular

最近我决定看看VueJS2.0。因为我仍然主要使用各种CMS系统(Wordpress、TYPO3、OctoberCMS等),所以我想尝试实现类似pjax的页面加载。令我惊讶的是,事情并不像我想象的那么简单

是否有方法替换页面的某些部分并重新初始化VueJS中的组件

我可能应该解释一下我为什么要实现这样一个特性。在过去的几年里,我发现使用前端框架开发功能丰富的网站更容易、更快。然而,由于大多数客户需要一个后端来管理他们的网站,使用一个已经存在的CMS是不需要动脑筋的。 在过去,我使用Angular来构建前端。即使使用pjax,它也工作得非常好,因为可以在Angular 1.0中重新初始化页面的某些部分

Angular 2.0采用了一种不同的方法,虽然我非常喜欢他们用它所做的工作,但我认为它不适合在大多数前端由服务器渲染的环境中使用。这就是我决定查看VueJS的原因

我想实现一个类似pjax的特性,因为HTML已经在服务器端呈现,动态替换页面的某些部分看起来很酷:)

编辑
明确地说,我不是在说jQuery pjax插件,而是在动态地替换页面的某些部分(在我之前工作的公司中,这些部分被简单地称为“pjax”:p)

是的,您完全可以这样做。您可以使用多个组件来构建一页视图,您可以只使用一个组件来更新该组件,也可以使用
v-if
,以便更改将动态呈现的组件

提琴样品:

使用
setTimeout
模拟ajax的小提琴示例:


您可以使用多个组件之间的通信,检查一个示例。

谢谢您的回答。我实际上是在动态模板替换的过程中搜索一些东西。例如,使用jquery,我将使用ajax加载我想要的页面,然后只替换我需要的内容(有点像pjax)。对于Angular 1.0,我会首先使用低级函数编译内容。我怀疑VueJS中存在类似的东西,但我还没有找到它。也许这样更好,它可以让系统为各种漏洞敞开大门。重新加载数据将假定后端的构造类似于api,而当前不是:(@itd Yes,有了vueJs的双向绑定,如果你更改数据,它只会替换内容,不会重新呈现页面,这就是你要问的,对吗?虽然vueJs满足了所有其他用例,但我不认为我的特定用例是(有点黑客:P).在我过去的一些项目中,我总是有一个元素,用来保存内容(例如一个id为#content的div)。当用户单击一个链接时,我用ajax加载了整个页面,只替换了主要内容,只保留页眉和页脚。将其想象成“v-html”"只有html内部的组件得到编译。由于页面所有者可以创建自定义页面,因此无法预测内容。可能我只是选错了approach@itd请原谅我不理解,当我只是更改
标题时,这不是我在这里做的吗该组件发生变化,页面的其他部分,如我小提琴中的按钮保持不变,请参见,我正在使用
setTimeout
模拟
ajax
。我对您的发现非常感兴趣,因为我实际上在考虑相同的结构。您有什么可以共享的工作吗?例如,您将如何管理URL(vue router)?加载新内容时,您能管理转换吗?谢谢。