vue.js使用 {{data}}方式 输出,是什么原理?
用原生js是如何实现的?
js直接正则替换就行了吧,vue应该也是分析出此类标签后执行替换
<div id="div1"> {{data}},姓名:{{name}},年龄:{{age}}</div>
<script>
var data = { data: "123", name: "csdn", age: "xxoo" }
div1.innerHTML = div1.innerHTML.replace(/\{\{([\s\S]+?)\}\}/g, function ($0,$1) {return data[$1]||'' })
</script>
这个是vue的模板语法,vue会对template里面的内容做compile,其实就是再js的基础上设计了一套新的模板语法。
在编译的过程中对这个表达式求值,最终得到结果。
具体的实现可以参照eval函数的实现