vuejs初探
初学Vue.js,一上来就遇到了坑,我完全按照官网来的,但一直不能显示变量,日了狗了,后来搜索了一下发下问题。
1、Django在取变量值方面与vue.js冲突
两个都是用{{}}获取变量,因此出现了冲突。 对于这个问题有几种解决办法:
(1)最直白得就是禁用django模板渲染
django标签 verbatim可以使包裹其中的代码不进行渲染保持原样输出
{% verbatim %} {{ vue }} {% endverbatim %}
####(2)重新定义vue绑定符号
在很多资料里,使用如下方式修改:
Vue.config.delimiters = ["[[", "]]"];
执行这个之后,你就可以使用“[[”、“]]”来绑定变量的数据了。
但是在最新的vue.js版本(2.3.0)中,却不管用。
在stackoverflow中,查到了最新方法:
Vue中定义:
new Vue({
el:‘#vueapp',
delimiters:["[[", "]]"],
data:.....,
今天敲了一遍vue.js的实例代码,敲得越多,越发现,vue.js真特么好用,有种相见恨晚的感觉。
贴上一个比较基本,包含了大多数vue基础的例子吧:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="styles/demo.css" />
</head>
<body>
<div id="app">
<fieldset>
<legend>
Create New Person
</legend>
<div class="form-group">
<label>Name:</label>
<input type="text" v-model="newPerson.name"/>
</div>
<div class="form-group">
<label>Age:</label>
<input type="text" v-model="newPerson.age"/>
</div>
<div class="form-group">
<label>Sex:</label>
<select v-model="newPerson.sex">
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
</div>
<div class="form-group">
<label></label>
<button @click="createPerson">Create</button>
</div>
</fieldset>
<table>
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>Sex</th>
<th>Delete</th>
</tr>
</thead>
<tbody>
<tr v-for="person in people">
<td>{{ person.name }}</td>
<td>{{ person.age }}</td>
<td>{{ person.sex }}</td>
<td :class="'text-center'"><button @click="deletePerson($index)">Delete</button></td>
</tr>
</tbody>
</table>
</div>
</body>
<script src="js/vue.js"></script>
<script>
var vm = new Vue({
el: '#app',
data: {
newPerson: {
name: '',
age: 0,
sex: 'Male'
},
people: [{
name: 'Jack',
age: 30,
sex: 'Male'
}, {
name: 'Bill',
age: 26,
sex: 'Male'
}, {
name: 'Tracy',
age: 22,
sex: 'Female'
}, {
name: 'Chris',
age: 36,
sex: 'Male'
}]
},
methods:{
createPerson: function(){
this.people.push(this.newPerson);
// 添加完newPerson对象后,重置newPerson对象
this.newPerson = {name: '', age: 0, sex: 'Male'}
},
deletePerson: function(index){
// 删一个数组元素
this.people.splice(index,1);
}
}
})
</script>
</html>
这个例子很好理解,就是创建了一个表格,显示三个字段。同时,可以通过createPerson方法创建新的行。
--------EOF---------
微信分享/微信扫码阅读
微信分享/微信扫码阅读