模板数据

template.tpl文件定义了页面结构,模板数据文件则是定义了每个页面展现的内容

自定义输出路径

tyre 配置文件 中的 output 只是定义了文件输出的目录,输出的文件名称 则是根据模板数据文件来的。

例如tyre的配置文件如下:

# tyre.config.json
{
    "output": "./src/views", 
    ...
}

如果我们的模板数据文件叫:Data.json 那么最终生成的文件路径为:./src/views/Data.vue

想自定文件路径、名称的话,就需要在Data.json中定义output来配置文件的路径和名称

# Data.json
{
    "output": "test/Index.vue",
    ....
}

通过以上的配置,那么那么最终生成的文件路径则为:./src/views/test/Index.vue

自定义路由格式

若tyre的配置文件中配置了路由文件的路径,那么生成vue组件时,会自动在路由文件中引入此组件并注册成路由。需要说明的是,目前这些都是基于vue-router 2的方式来定义的。

同样可以在模板数据文件Data.json中自定义路由的内容

# Data.json自定义路由
{
    "router": {
        "path": "/data",
        "name": "data",
        "component": "Data"
    }
}

通过以上配置,最终路由文件中会加入以下几行

# router/index.js
...
import Data from 'views/test/Index.vue'
...
    routes:[
        {
            "path": "/data",
            "name": "data",
            "component": Data
        },
        ...
    ]

配置组件信息

组件的配置一些关键字需要说明下,这里定义一组配置用于示例说明:

# Data.json
{
    "name" : "MyInput",
    "value" : "val",
    "default" : "tyre",
    "submit" : true,
    "rules" :  {"required": true, "message": "请输入", "trigger": "blur"},
    "slot": "form",
    "placeholder": "请输入"
}
name

组件的名称,解析过后就是标签的名称。若组件是项目中一个自定义组,将会自动插入import语句,同时注册成组件。

# 示例模板内容
<template>
    <%# name %>   
</template>

-----------------------------分隔线------------------------------

#解析成: 
<template>
    <MyInput>
</template>
<script>
    import MyInput from './components/MyInput.vue'
    export default {
       components: {
           MyInput
       },
       ...
    }
</script>
value

会解析成组件所绑定的字段,同时会将字段插入到data对象中

# 示例模板内容
<template>
    <%# name|value %>   
</template>

-----------------------------分隔线------------------------------

#解析成: 
<template>
    <MyInput v-model="val">
</template>
<script>
       ...
       data () {
           return {
               val: ''
           }
       }
</script>
default

作为绑定字段的默认值

# 示例模板内容
<template>
    <%# name|value|default %>   
</template>

-----------------------------分隔线------------------------------

#解析成: 
<template>
    <MyInput v-model="val">
</template>
<script>
       ...
       data () {
           return {
               val: 'tyre'
           }
       }
</script>
submit

标识组件绑定的字段是否作为表单内容提交。tyre会插入一个formData对象,存入表单提交的字段。

# 示例模板内容
<template>
    <%# name|value|submit %>   
</template>

-----------------------------分隔线------------------------------

#解析成: 
<template>
    <MyInput v-model="formData.val">
</template>
<script>
       ...
       data () {
           return {
               formData: {
                   val: ''
               }
           }
       }
</script>
rules

此字段是定义组件的验证规则,这个是参考了饿了么组件表单验证

# 示例模板内容
<template>
    <%# name|value|rules %>   
</template>

-----------------------------分隔线------------------------------

#解析成: 
<template>
    <MyInput v-model="val">
</template>
<script>
       ...
       data () {
           return {
               val: '',
               rules: {
                   val : {"required": true, "message": "请输入", "trigger": "blur"}
               }
           }
       }
</script>

除去以上几个字段,定义的其他字段将原样绑定到组件上

示例:

# 示例模板内容
<template>
    <%# name|value|slot|placeholder %>   
</template>

-----------------------------分隔线------------------------------

#解析成: 
<template>
    <MyInput v-model="val" slot="form" placeholder="请输入">
</template>
<script>
       ...
       data () {
           return {
               val: ''
           }
       }
</script>

results matching ""

    No results matching ""