我最近开始使用 Django 开发一些社交媒体网站。我使用默认的 django 模板引擎来填充我的页面。但此时此刻,我想添加 javascript ,让网站更具活力。这表示:
- 每页的页眉和页脚都相同。标题应该有一个下拉菜单,一个在您输入时搜索的搜索表单。
- 我当前的 Django 应用程序有一个包含页眉和页脚 HTML 的 基本模板,因为每个页面都应该有这个。
- 该站点由 多个页面 组成,例如索引页面、个人资料页面、注册页面。这些页面中的每一个都有一些共同但也有很多不同的动态组件。例如,注册页面应该有动态的表单验证,但是个人资料页面不需要这个。个人资料页面应该有一个无限滚动的状态提要。
想用Vue来处理动态组件,但不知如何入手。该应用程序不应是 SPA。
- 我应该如何 构建 Vue 代码?
- 我应该如何 捆绑 这个。使用吞咽?或者 django-webpack-loader ?
- 我应该仍然能够使用 Django 模板标签,例如我希望能够在下拉菜单中使用
{% url 'index' %}
。
原文由 user6827 发布,翻译遵循 CC BY-SA 4.0 许可协议
这看起来像是一个基于 意见 的问题,没有明确的答案。
您提到您 不 希望该应用程序成为 单页应用程序 (SPA) 。如果是这样,使用 Vue 的动机是什么?处理页面内的用户交互?
Vue 可以在非 SPA 上下文中完美运行。它将帮助您处理页面内的丰富交互,例如将您的数据绑定到下拉菜单、表单等。但是当您在 SPA 上下文中使用它时,Vue 的真正威力就会显现出来。
对于您的情况,我建议在 独立 模式下使用 Vue.js,您可以在 Vue 组件中快速定义
template
并将所有代码轻松写入一个 javascript 文件中。这是您需要的: https ://vuejs.org/guide/installation.html#Standalone
在“Vue.js 独立模式”下,不需要任何 webpack 构建系统或
vue-cli
。您可以直接在现有的 Django 开发环境中构建应用程序。gulp
可以选择正常缩小和捆绑您的 javascript 文件,就像您使用基于 jQuery 的应用程序一样。Vue.js 使用双花括号
{{..}}
作为模板,所以它不会干扰你的 django 模板字符串。Vue.js 的所有 jsFiddle 示例都以 独立模式 运行。这正是您此刻所需要的。您可以查看带有
vue.js
标签的一些最近的问题,找到一个示例 jsFiddle 并查看它是如何完成的。对于复杂的 SPA 应用程序,您需要从服务器端单独构建您的 Vue 代码,使用虚拟 AJAX 调用对其进行彻底测试,为生产构建它,然后将最终生产构建放入您的服务器以进行端到端测试。这是你将来可以做的事情。