最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

探讨Vue.js的组件和模板

来源:动视网 责编:小采 时间:2020-11-27 22:26:33
文档

探讨Vue.js的组件和模板

探讨Vue.js的组件和模板:摘要: 指令是Vue.js中一个重要的特性, 主要提供了一种机制将数据的变化映射为DOM行为。 那什么交数据的变化映射为DOM行为, Vue.js是通过数据驱动的, 所以我们不会直接去修改DOM结构, 不会出现类似$('ul').append('<li>one<
推荐度:
导读探讨Vue.js的组件和模板:摘要: 指令是Vue.js中一个重要的特性, 主要提供了一种机制将数据的变化映射为DOM行为。 那什么交数据的变化映射为DOM行为, Vue.js是通过数据驱动的, 所以我们不会直接去修改DOM结构, 不会出现类似$('ul').append('<li>one<


摘要:

指令是Vue.js中一个重要的特性, 主要提供了一种机制将数据的变化映射为DOM行为。 那什么交数据的变化映射为DOM行为, Vue.js是通过数据驱动的, 所以我们不会直接去修改DOM结构, 不会出现类似$('ul').append('<li>one</li>')这样的操作, 当数据变化时,指令会一句设定好的操作对DOM进行修改, 这样就可以只关注数据的变化, 而不用去管理DOM的变化和状态,

Vue的内置指令

1. v-bind

v-bind主要用于绑定DOM元素属性(attribute),

即元素属性实际的值是有vm实例中的data属性提供的。

例如:

<!doctype html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Vue的指令</title>
 <script src="../vue.js"></script>
</head>
<body>
<!-- HTML模版 -->
<div id="demo">
 <span v-bind:cutomId="id">{{message}}</span>
</div>
<script>
 //数据
 let obj ={
 message:"Hello World",
 id:'123'
 };
 //声明式渲染
 var vm = new Vue({
 el:'#demo',
 data:obj });
</script>
</body>
</html>

v-bind可以简写为“:”,

上述例子可以简写为<span :cotomId="id">

实现效果如下:

 

2. v-on

绑定事件监听器,简写为@。

昨天我们也用过,我们简写一下看一下效果

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Vue的指令</title>
 <script src="../vue.js"></script>
</head>
<body>
 <!-- HTML模版 -->
 <div id="demo">
 <span @click="clickHandle">{{message}}</span>
 </div>
 <script>
 //数据
 let obj = {
 message:"hello Vue"
 };
 //声明式渲染
 var vm = new Vue({
 el:"#demo",
 data:obj,
 methods:{
 clickHandle(){
 alert("click")
 }
 }
 });
 </script>
</body>
</html>

效果如下:

3.v-html

v-html,参数类型为string,

作用为更新innerHTML,

接受的字符串不会进行编译等操作,

按普通HTML处理

代码如下

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Vue的指令</title>
 <script src="../vue.js"></script>
</head>
<body>
<!-- HTML模版 -->
<div id="demo" v-html="HTML"></div>
<script>
 //数据
 let obj = {
 HTML:"<div>Hello World</div>"
 };
 var vm = new Vue({
 el:"#demo",
 data:obj })
</script>
</body>
</html>

实现效果如下

更多内置指令请查询官网:Vue.js指令

模板

html模板

        基于DOM的模板,模板都是可解析有效的html

插值

文本:使用“Mustache”语法(双大括号){{value}}

    作用:替换实例上的属性值,

    当值改变时,插值内容就会自动更新

原生的html:双大括号输出的是文本,不会解析html

属性:使用v-bind进行绑定,可以响应变化

使用JavaScript表达式:可以写简单的表达式

字符串模板

template字符串

        template选项对象的属性

        模板将会替换挂在元素。挂在元素的内容都将被忽略。

代码如下

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>template模板</title>
 <script src="../vue.js"></script>
</head>
<body>
 <!--HTML模板-->
 <div id="demo"></div>
 <script>
 //数据
 let obj = {
 html:"<div>String</div>",
 abc:1
 };
 var str = "<div>Hello</div>";
 var vm = new Vue({
 el:"#demo",
 data:obj,
 template:str })
 </script>
</body>
</html>

有木有发现什么惊奇的变化

        根节点只能有一个

        将html结构写在一对script标签中,设置type="X-template"

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>template模板</title>
 <script src="../vue.js"></script>
</head>
<body>
 <!--HTML模板-->
 <div id="demo">
 <span>vue</span>
 </div>
 <script type="x-template" id="temp">
 <div>
 Hello,{{abc}},
 <span>sunday</span>
 </div>
 </script>
 <script>
 //数据
 let obj = {
 html:"<div>String</div>",
 abc:1
 };
 var vm = new Vue({
 el:"#demo",
 data:obj,
 template:"#temp"
 });
 </script>
</body>
</html>

实现效果如下:

写在script标签中,还是比较局限,

如果别的文件也是这个结构的时候,

这个就不能重复使用。

模板render函数

render函数

  render 选项对象的属性

  createElement(标签名,{数据对象},[子元素]);

  子元素为文本或者数组

我们还是来一段代码演示

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>render函数</title>
 <script src="../vue.js"></script>
 <style type="text/css">
 .bg{
 background: #ee0000;
 }
 </style>
</head>
<body>
 <div id="demo"></div>
 <script>
 //数据
 let obj = {
 };
 var vm = new Vue({
 el:"#demo",
 data:obj,
 render(createElement){
 return createElement(
 //元素名
 "ul",
 //数据对象
 {
 class:{
 bg:true
 }
 },
 //子元素
 [
 createElement("li",1),
 createElement("li",2),
 createElement("li",3)
 ]
 );
 }
 })
 </script>
</body>
</html>

实现效果如下

关于数据对象属性,讲情请参考官网的例子。

Vue.js官网

总结

以上所述是小编给大家介绍的Vue.js的组件和模板,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

文档

探讨Vue.js的组件和模板

探讨Vue.js的组件和模板:摘要: 指令是Vue.js中一个重要的特性, 主要提供了一种机制将数据的变化映射为DOM行为。 那什么交数据的变化映射为DOM行为, Vue.js是通过数据驱动的, 所以我们不会直接去修改DOM结构, 不会出现类似$('ul').append('<li>one<
推荐度:
标签: VUE 模板 的模板
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top