关于数据使用后台模板方式 和 vuex state统一管理方式的

2017-11-18  本文已影响0人  宋乐怡
velocity后台模板

这是一种格式,官网项目m端用过的。
比如一个下拉列表红的数据,就只有一个页面用到,没必要调接口,徒增请求次数,那就写个HTML,里面用到扁郎数据的地方用velocity格式写上,把这个HTML丢给后台就好了。当然两方要说好变量的名字。

#foreach($secondCate in $secondCateList)
        <a href="/$!secondCate.listName"><i><img src=$!secondCate.picUrlMNavi></i>$secondCate.name</a>
        #end

这就是最基础的velocity语法格式了,还可以自己定义变量什么的,等等更复杂的方式。

说srm的事情

纵观项目中,dev-server这个文件夹稍显神奇,同屋小哥哥封装的什么东西等我参透再来说一说。项目里的vue文件是我自己跑的,并不要给后台,因为整个项目里只有一个完整的HTML,即dev-server下的index.html,

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>SRM</title>
    #foreach($asset in $!state.main)
    #if($!asset.toString().endsWith("css"))
    <link rel="stylesheet" href="/$!asset"/>
    #end
    #end
</head>
<body>

<div id="app"></div>
<!--<script src="/scripts/runtime.js"></script>-->
</body>

<script>
    var cities = $cities;
    var cates = $cates;
</script>
<script src="/scripts/index.js"></script>
</html>
<div id="app"></div>

这句话把vue部分拽进来了。
script标签里定义了两个全局变量,vue文件要用到的数据变量就是拿的这个,登号后面的$cities这样的东西是怎么回事呢?dev-server下有个routers里面的index.js是最初加载页面的路由文件,renderWIthink就是加载一个页面时去找的页面 资源,和为这个页面初始化的数据,那我们就把数据写在这里,所以HTML拿到的其实就是这个js文件里定义的。vue文件是怎么拿到的呢?得把全局的变量接回来,变成自己局部范围内的变量:

<script>
    import {srmServices} from '../service';
    export default {
        name: 'addSupplier',
        data() {
            return {
                cities:window.cities,
                cates:window.cates,
            }
        },
        methods: {
        }
    }
</script>

全局是window,所以是window.cities,这个时候,把这个变量接回来了,在当前的vue组件里就可以用了。

 <el-option v-for="city in cities" :key="city.id" value="city.id">{{city.name}}</el-option>

实际上,router里的index.js我们不用写数据的,因为index.html扔给后台,不需要前端的数据了,这样做是为了目前我自己开发的效果。

上一篇下一篇

猜你喜欢

热点阅读