0%

走进 vue 和 react 的世界

开始想学点新的东西来拓展些视野和想法了,一直听说 react 的大名,始终没有开始研究,借此机会来一段新的学习来充实下自己。

这两天微博刚好也看到有人用 vux 实现了一个类似微信设置的页面,查了下 vux 的 demo 完整性不错,又看了下 vue 官网的实例都很简洁明了,所以先入门 vue 然后再来看看 react 吧。

vue 入门

hello world

使用的方法很简单基本上就两部,当然如何还有美化的话,加上 css 样式就好了:

  • 引入 vue.js 然后写 布局
  • 然后写 vue 的脚本
<script src="https://npmcdn.com/vue/dist/vue.js"></script>

<div id="app">
<p>{{ message }}</p>
<input v-model="message">
</div>
new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
}
})

双向绑定

第一次听说这个词,感觉有点高大上啊,让我们直接看下例子吧

<div id="app">
<p>{{ message }}</p>
<input v-model="message">
</div>
new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
}
})

看出来没,定位好标签,数据是可以用括号或者属性定义的方式来传的。

综合例子

稍微来个复杂的,有数据又有方法的。

<div id="app">
<input v-model="newTodo" v-on:keyup.enter="addTodo">
<ul>
<li v-for="todo in todos">
<span>{{ todo.text }}</span>
<button v-on:click="removeTodo($index)">X</button>
</li>
</ul>
</div>
new Vue({
el: '#app',
data: {
newTodo: '',
todos: [
{ text: 'Add some todos' }
]
},
methods: {
addTodo: function () {
var text = this.newTodo.trim()
if (text) {
this.todos.push({ text: text })
this.newTodo = ''
}
},
removeTodo: function (index) {
this.todos.splice(index, 1)
}
}
})

总结

几个例子看下来,稍微总结点规律出来

  • {} 大括号取值
  • v 前缀取值

Js 能这么流行我想就在于,直接文本编辑,浏览器刷新就能看到效果,太快太直接了,不像用个 IDE 还得编译才能看到效果,快,真乃天下第一武功之精髓。