新手,希望能得到大家的耐心解答
vue
提倡的是组件系统,而在使用django
作为后端路由的时候,是否有冲突?
比如写blog的时候,header
和footer
部分是公用的,而content
部分是通过django
的模板继承,之前在用vue
的时候,是在base.html
的时候引入vue
的js,写好样式,通过继承来返回不同的页面,没有用到组件系统:
<!--base.html-->
{% load staticfiles %}
<!DOCTYPE html>
<html lang="zh-CH">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="{% static 'css/semantic.css' %}">
{% block css %}
{% endblock %}
//各种每个页面都用到的公共js
</head>
<body>
<div id="app">
<div class="header"></div>
<div class="content">
<div>
{% block right_content %}{% endblock %}
</div>
<div>
{% block left_content %}{% endblock %}
</div>
</div>
<div class="ui inverted vertical footer segment"></div>
{% block script %}{% endblock %}
</body>
</html>
例如index页
{% extends 'base.html' %}
{% load staticfiles %}
{% block title %}
Index
{% endblock %}
{% block css %}
index的css
{% endblock %}
{% block right_content %}
{% verbatim %}
index的内容
{% endverbatim %}
{% endblock %}
{% block left_content %}
{% verbatim %}
index的内容
{% endverbatim %}
{% endblock %}
{% block script %}
<script>
var vm = new Vue({
el: '#app',
index页的功能...
});
</script>
{% endblock %}
然后再django中只返回页面,数据通过django搭建rest接口传送
# views.py
def index(request):
return render(request, 'index.html', {})
觉得这样的方式加载时页面好像很慢,加载很多js
觉得想学习点新的内容,学习一下组件系统,和webpack的智能打包
那么问题又来了:
vue
组件也可以在django
模板继承中使用吗?在
vue-cli
中也是按着这样的顺序写吗?就是主目录App.vue
写上述base.html
的内容,然后在component
中写index.vue
,xxx.vue
,build
完再放入django中继承吗?*.vue
文件是不能使用4个空格的吗?我不想将公用的js打包进每个页面里面,在
vue-cli
中怎么使用cdn调试,然后打包不带上cdn的js呢?使用
vue组件
和webpack
是否会加快页面加载的速度呢?(较之前的模式)上述的模式和
vue组件
,webpack
模式相比,能否用进步来描述?(后者先进于前者)
可以考虑把通用的组件写在一个或一组 js 里,这样可以充分利用缓存。
cdn 上的 js,可以看一下 webpack 配置的 externals 选项。
想到这样的问题很不错,还要培养解决问题的能力。我遇到这样的问题的时候,直接就是搜索 webpack external 这两个关键字,结果真被我找到了。