Bob's Blog

Web开发、测试框架、自动化平台、APP开发、机器学习等

返回上页首页

Django restframework加Vue打造前后端分离的网站(十五)多重模板



模板的作用是用来复用的。比如在前面我们准备好了header和footer的模板,这样写其他页面时,都会加载header和footer,而不需要重复写,只关注当前页面的特定元素控件和方法就好。

根据页面展示的元素的不同,可能需要复用多次。假设有header的页面是最基础的模板,页面一是显示了一个菜单栏,页面二也需要菜单栏并显示其他的元素,于是页面二以页面一作为模板。页面三是登录页面不需要菜单栏,于是页面三以header页面为模板。

为简单呈现,以文字代替。

页面一以最基础的app.vue为模板,内容为:

<template>
  <div style="margin: 20px;">
    <h3>this page is parent based on the default template</h3>
    <router-view/>
  </div>
</template>

页面一在router/index.js中定义为:

import Vue from 'vue'
import Router from 'vue-router'
import Parent from '@/components/parent'

Vue.use(Router)

export default new Router({
  mode: 'history',
  routes: [
    {
      path: '/parent',
      name: 'parent',
      component: Parent,
    },
    ...
  ]
});

当前效果为:

页面二以页面一为模板,内容为:

<template>
  <div style="margin: 20px;">
    <h4>this this child based on parent template</h4>
  </div>
</template>

router/index.js中变化为:

import Vue from 'vue'
import Router from 'vue-router'
import Parent from '@/components/parent'
import Child from '@/components/child'

Vue.use(Router)

export default new Router({
  mode: 'history',
  routes: [
   {
      path: '/parent',
      name: 'parent',
      component: Parent,
      children: [
        {
          path: 'child',
          name: 'child',
          component: Child,
        },
      ]
    },
    ...
  ]
});

当前效果为:

到此就能看到多重模板的效果了。

下一篇:  python动态加载所有class或所有module
上一篇:  Mac上用openemu玩街机游戏

共有0条评论

添加评论

暂无评论