vue 指令和模板
来源:互联网 发布:汉诺塔的非递归算法 编辑:程序博客网 时间:2024/05/21 09:27
今天我来总结一下vue的指令和模板。指令和模板是vue比较基础的东西,也是vue中很重要的东西。
一、vue指令
vue指令有很多,比如:
v-bind,
v-click,
v-style,
v-class,
v-once,
v-if,
v-else-if,
v-model 等等。
这些指令我就不一一讲解用法了。具体用法可以去看vue 官网的APIhttps://cn.vuejs.org/v2/api/这里写链接内容
二、vue模板
vue的模板是vue很重要的部分。下面我来讲一些vue创建模板的几种方法。
1. 使用 v-html
<div id="dome"> <p v-html="divWarp"></p> </div> <script type="text/javascript"> const data = '<span>I am new elemenp</span>'; var vm = new Vue({ el:'#dome', data:{ divWarp:data, } }) </script>
重点内容 这里有个知识点我们写的data 数据中间不能断开,象这样, '<span>I am new elemenp
否则会报错。
</span>'
但是ES6为我们提供了一个方法可以这样做,那就是用 ``
反引号。这样我们在给它换行时,js就不会报错。
2.使用template
<div id="dome"> </div> <script type="text/javascript"> const data = "<ul><li>我是 template 模板</li></ul>" var vm = new Vue({ el:'#dome', template:data, }) </script>
重点内容
① 这时会出现一种现象,我们写的模板data会替换掉 <div id="dome"></div>
它,展示为 <ul><li>我是 template 模板</li></ul>
,也就时说template 权级是比较高一些。
② 我们写的字符串data 中 只能有一个根源素,后面不能出现第二个,否则vue 会报错。例如<ul><li>我是 template 模板</li></ul><div>我是DIV</div>
这样是不对的,ul后面不能够在有元素存在,以后所有元素都要写在ul里面(这里只为说明道理,元素包含规则要这注意)
3.使用 <script>
标签
<div id="dome"></div <script type="x-template" id="temp"> // type 和 id 是重点 <div>我是 script 模板</div> </script> <script type="text/javascript"> new Vue({ el:'#dome', template:temp, }) </script>
重点内容 <script>
的type 是重点,当我们更改script的 type 为 x-template
并且要给 <script>
添加一个ID, 在构造vue,中用template 去引入对应id 即可
4.使用render 函数
我这里简单的总结一下render 函数,以后单独写文章详细总结render.
render函数是很接近原声编译的。
rander(createElement){ return createElement(标签名,{数据对象},子元素) // 第一个参数 标签名是必要的 // 第二个参数 数据对象 是不必须的 // 第三个参数 子元素是不必须的}
数据对象又包含以下(部分)属性:
class:{} 绑定class,和v-bind:class 一样的API
style:{} 绑定样式,和v-bind:style 一样的API
attrs:{} 添加行间属性 domProps:{} DOM元素属性
on:{} 绑定事件
nativeOn:{} 监听原生事件
directive:{} 自定义指令
scopedSlots:{} slot 作用域
key:”key” 给元素添加唯一的标示
ref:”ref” 引用信息
例如
<style> .color{color:red;} // 我这里定义了一个类名,下面会绑定 color 类名</style>
<div id="dome"></div><script type="text/javascript"> new Vue({ el:'#dome', render(createElement){ return createElement( "ul", //标签名 { class:{color:true}, style:{ fontSize:"26px" }, attrs:{ newAttr:"111" } }, // 数据对象,包含一些属性,id ,class,事件的添加 [ createElement("li","1"), createElement("li","2"), createElement("li","3"), createElement("li","4"), ] // 子元素对象 ) } }) </script>
以上代码渲染成的DOM 就是
<ul newAttr="111" class="color" style="font-size:26px"> <li>1</li> <li>2</li> <li>3</li> <li>4</li> </ul>
- vue 指令和模板
- vue笔记--模板语法--指令
- vue.js基础-模板语法-指令
- Vue实践--指令和事件
- Vue 简单介绍和指令
- 2、指令和模板
- Vue-5-模板和交互
- Vue.js入门-简介和指令介绍
- vue 过滤器和自定义指令、组件
- vue学习(一) vue指令和过滤器
- vue 指令
- Vue2 自定义全局指令Vue.directive和指令的生命周期
- vue全局自定义指令和局部自定义指令
- 认识Vue.js的组件和模板
- vue学习(二) vue生命周期 vue自定义指令和过滤器
- Vue 模板
- Vue模板
- Vue 模板
- 工信部要求国内安卓统一消息推送标准,约束流氓App |价值早报
- 打印楼梯
- 防火墙排错
- 编程机制
- bzoj 2839 集合计数
- vue 指令和模板
- PL/SQL异常处理学习之——如何编写健壮的程序
- 2017年上海金马五校程序设计竞赛:Find Palindrome
- CF
- Android实践:有序广播
- struts jstl标签
- xxxx
- Ubuntu16.04离线安装Nodejs与JDK
- qwb与学姐---之江学院第0届校赛最大生成树+lca