vue.js与php的模板,Vue.js中的组件与模板探讨

Vue.js的指令系统是其核心特性之一,如v-bind用于属性绑定,v-on处理事件监听,v-html更新元素的innerHTML。这些指令使得开发者能以声明式的方式处理DOM,当数据变化时,DOM会自动更新。Vue提倡数据驱动,避免直接操作DOM,提高代码可维护性。此外,还介绍了模板的多种形式,包括html模板、字符串模板和render函数,展示了Vue如何灵活构建视图。
摘要由CSDN通过智能技术生成

摘要:

指令是Vue.js中一个重要的特性, 主要提供了一种机制将数据的变化映射为DOM行为。 那什么交数据的变化映射为DOM行为, Vue.js是通过数据驱动的, 所以我们不会直接去修改DOM结构, 不会出现类似$('ul').append('

one')这样的操作, 当数据变化时,指令会一句设定好的操作对DOM进行修改, 这样就可以只关注数据的变化, 而不用去管理DOM的变化和状态,

Vue的内置指令

1. v-bind

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

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

例如:

Vue的指令

{{message}}

//数据

let obj ={

message:"Hello World",

id:'123'

};

//声明式渲染

var vm = new Vue({

el:'#demo',

data:obj });

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

上述例子可以简写为

实现效果如下:

ec5a19c72853c06accca1ffd0af32563.png

2. v-on

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

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

Vue的指令

{{message}}

//数据

let obj = {

message:"hello Vue"

};

//声明式渲染

var vm = new Vue({

el:"#demo",

data:obj,

methods:{

clickHandle(){

alert("click")

}

}

});

效果如下:

09aac1a9955a53fb2e28a0316e5e2aea.png

3.v-html

v-html,参数类型为string,

作用为更新innerHTML,

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

按普通HTML处理

代码如下

Vue的指令

//数据

let obj = {

HTML:"

Hello World

"

};

var vm = new Vue({

el:"#demo",

data:obj })

实现效果如下

81768bd28e50e7b9a44ba0de353d900a.png

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

模板

html模板

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

插值

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

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

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

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

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

字符串模板

template字符串

template选项对象的属性

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

代码如下

template模板

//数据

let obj = {

html:"

String

",

abc:1

};

var str = "

Hello

";

var vm = new Vue({

el:"#demo",

data:obj,

template:str })

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

ab34428fa402af1f743de6171bcf4319.png

根节点只能有一个

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

template模板

vue

Hello,{{abc}},

sunday

//数据

let obj = {

html:"

String

",

abc:1

};

var vm = new Vue({

el:"#demo",

data:obj,

template:"#temp"

});

实现效果如下:

c0077ffb42d4c1b02fcd531156c4b63a.png

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

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

这个就不能重复使用。

模板render函数

render函数

render 选项对象的属性

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

子元素为文本或者数组

我们还是来一段代码演示

render函数

.bg{

background: #ee0000;

}

//数据

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)

]

);

}

})

实现效果如下

c432f128882116456ad4e5801737f3db.png

总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值