好 我们前面几篇文章 已经编写完了 将dom结构的模板字符串转为 tokens 数据结构的代码
 那么 现在 我们就需要用tokens 结合数据 去生成dom字符串
我们先来研究一下我们的模板字符串与数据结构
 首先 数据从这个data中去拿 然后 模板字符串语句中 先是 利用对象中的students 循环
 然后 里面又用每个students每个下标的list 再开启一个循环
 
 这个也可以理解为 模板字符串与响应式数据之前的一个互动
然后 我们在src下创建一个文件叫 renderTemplate.js
 这个函数的作用 就是将tokens再从数组转回字符串
 我们先这样写
/*
    将tokens数组转为模板字符串
*/
export default function renderTemplate(tokens,data) {
    console.log(tokens,data);
}
先将一个函数结构体暴露出去
 参数上的话 他接收 我们处理完的 tokens数组 和我们刚才看的那个数据data
然后 我们打开之前 src下创建的index.js
 引入并用一下这个renderTemplate
 
 这里 我们导入了renderTemplate
 然后接收他的返回值 传入的是我们前面处理完的 tokens数组 和我们之前没有使用的data
然后 我们运行项目
 
 可以看到 renderTemplate 中的 tokens 和 data都成功输出了 但因为 我们renderTemplate并没有写返回值 所以 现在输出renderTemplate返回结果 肯定是拿不到的
那么 现在我们就要想办法去操作 tokens和data
但 我们现在这个结构还是有点复杂 我们将 www下的index.html 改成
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script src = "/xuni/bundle.js"></script>
    <script>
        let templateStr = `
            <div>
                我超喜欢我家的{{name}},我家{{name}}也超喜欢我
            </div>
        `;
        let data = {
            name: "小猫猫",
        }
        GrManagData.render(templateStr,data);
    </script>
</body>
</html>
这样 我们数据的整体结果就会显得简单很多
 
 然后 我们将 renderTemplate 代码修改如下
/*
    将tokens数组转为模板字符串
*/
export default function renderTemplate(tokens,data) {
    //创建一个字符串  保存结果
    let resultStr = "";
    //先循环遍历tokens 数组
    for(let i = 0;i < tokens.length; i++){
        //定义一个token变量  接收当前遍历的下标
        let token = tokens[i];
        //判断当前是不是text  文本类型的
        if(token[0] == "text") {
            //因为  text表示内容只是单纯文本 直接追加到结果字符串上就行了
            resultStr += token[1];
        } /* 判断到如果是name变量名称类型 */ else if(token[0] == "name") {
            //在data中找到对应的字段 然后追加在结果字符串上
            resultStr += data[token[1]];
        }
    }
    //输出最后结果字符串
    console.log(resultStr);
}
首先 我们定义一个结果字符串来存内容
 然后 我们循环遍历tokens 我们还记得之前我们formConversToken处理时 花括号外的 定义text 内的 则 定义为 name
 然后 我们普通文本类型 就直接追加到结果字符串就好了
然后是name 那么 我们就需要将他 在data中匹配对应的字段 然后追加
 这个应该一看就明白了
 最后 我们输出结果
 拼接出来的结果是这样的
 
 回头看我们 html内容
 
 也是没有任何问题
下文 我们继续来处理 带着井号的循环字符串



















