怎么样vue可以动态解析后台给的html模板?

html-css010

怎么样vue可以动态解析后台给的html模板?,第1张

对于 vue 来说,模板本质就是一个字符串

vue 中的模板是有逻辑的,是动态的,如 v-if、v-for 等

与 html 格式很像,但有很大区别;html 是静态的,而 vue 模板是动态的

最终还是要转化为 html 来显示,怎么才能转换为 html 来显示呢?

模板最终必须转换为 JS 代码?

因为模板有逻辑 (v-if,v-for),必须用 JS 才能实现(前端中只有 JS 是图灵完备语言)

转换为html渲染页面,必须用 JS 才能实现渲染

因此模板最终要转换为一个 JS 函数(render 函数),(render 函数是指的渲染函数,并不一定就必须是 render 这个名字)

render函数

render 函数的 with 的用法

模板中,所有信息都包含在了 render 函数中

this 即 vm

price 就是 this.price,也是 vm.parice,也是 data.price

首先,Vue 会将 template 中的内容插到 DOM 中,以方便解析标签。由于 HTML 标签不区分大小写,所以在生成的标签名都会转换为小写。例如,当你的 template 为 <MyComponent></MyComponent>时,插入 DOM 后会被转换为 <mycomponent></mycomponent>。

然后,通过标签名寻找对应的自定义组件。 匹配的优先顺序从高到低为:原标签名、camelCase化的标签名、PascalCase化的标签名。 例如 <my-component>会依次匹配 my-component、myComponent、MyComponent。

注意的地方:

1.全局注册 VS 局部注册

3.注意:

4.组件实例的作用域是孤立的。这意味着不能 (也不应该) 在子组件的模板内直接引用父组件的数据。父组件的数据需要通过 prop 才能下发到子组件中。

5.Vue的组件里面也可以有data、template、methods、watch等属性,需要注意的是component中的data必须为一个函数参考Vue官网例子:

6.组件之双向绑定:.sync 修饰符

Vue 组件的 API 来自三部分——prop、事件和插槽:

Prop 允许外部环境传递数据给组件;

事件允许从组件内触发外部环境的副作用;

插槽允许外部环境将额外的内容组合在组件中。

7.关于slot(插槽):