前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(24)打鸡儿教你Vue.js

(24)打鸡儿教你Vue.js

作者头像
达达前端
发布2019-07-08 13:01:33
3980
发布2019-07-08 13:01:33
举报
文章被收录于专栏:达达前端

学习Vue基础语法 Vue中的组件 Vue-cli的使用

1、使用Vue2.0版本实现响应式编程 2、理解Vue编程理念与直接操作Dom的差异 3、Vue常用的基础语法 4、使用Vue编写TodoList功能 5、什么是Vue的组件和实例 6、Vue-cli脚手架工具的使用 7、但文件组件,全局样式与局部样式

如何创建一个Vue实例:

直接用<script>引入

开发版本和生产版本

使用cdn的形式

代码语言:javascript
复制
<body>
<div id="root">hello world {{msg}}</div>

<script>
new Vue({
 el: '#root',
 data: {
  msg: 'hello world'
 }
})
</script>
</body>

挂载点,模板,实例

Vue实例的挂载点为:

代码语言:javascript
复制
<div id="root">hello world {{msg}}</div>

Vue实例中的数据,事件,方法:

插值表达式:

代码语言:javascript
复制
<body>
 <div id="root">
  <h1>{{number}}</h1>
  <h1 v-text="number"></h1>
  <h1 v-html="number"></h1>
  <div v-on:click="helloClick">{{content}}</div>
  <div @click="helloClick">{{content}}</div>
 </div>

 <script>
  new Vue({
   el: '#root',
   data: {
    msg: 'world',
    number: 123,
    content: 'hello'
   },
   methods: {
     helloClick: function() {
      alert(123)
      this.content = 'world'
     }
   }
  })
</script>
</body>

React,Angular,Vue,Hybrid

属性绑定和双向数据绑定:

代码语言:javascript
复制
<input v-model="content"/>
<div>{{content}}</div>

计算属性和侦听器

代码语言:javascript
复制
<div id="root">
  <input v-model="firstName">
  <input v-model="lastName"/>
  <div> {{firstName}} {{lastName}} </div>
  <div>{{fullName}}</div>
  <div>{{count}}</div>
</div>

<script>
new Vue({
el: '#root',
data: {
firstName: '',
lastName: '',
count: 0
},
 computed: {
  fullName: function() {
   return this.firstName + ' ' + this.lastName
  }
 },
 watch: {
 firstName: function() {
  this.count ++
 },
lastName: function() {
  this.count ++
 },
 fullName: function() {
  this.count ++
 }
 
})
</script>

v-if,v-show,v-for

v-show会隐藏,不会销毁重新创建

image.png

添加Key值可以提升效率

代码语言:javascript
复制
<ul>
<li v-for="item of list" :key="item">{{item}}</li>
</ul>
代码语言:javascript
复制
<li v-for="(item, index) of list" :key="index">{{item}}</li>

v-if控制存在与否 v-show控制显示与否

todoList功能开发:

代码语言:javascript
复制
<body>
<div id="root">
<div>
 <input v-model="inputValue" />
 <button @click="handleSubmit">提交</button>
 </div>
<ul>
<li v-for="(item, index) of list" :key="index">
 {{item}}
</li>
</ul>
</div>

<script>
new Vue({
el: '#root',
data: {
 inputValue: 'hello'
 list: []
},
methods: {
 handleSubmit: function() {
  this.list.push(this.inputValue)
  this.inputValue = ''
 }
} 

})
</script>
代码语言:javascript
复制
template模板

<ul>
<todo-item v-for="(item, index) of list" :key="index" :content="item"></todo-item>
</ul>

<script>
// 定义组件 全局组件
Vue.component('todo-item', {
 props: ['content'],
 template: '<li>{{content}}</li>'
})

// 局部组件
var TodoItem = {
 template: '<li>item</li>'
}

new Vue({
 el; ‘#root’,
 components: {
  'todo-item': TodoItem
 },
 data: {
 inputValue: '',
 list: []
 },
</script>

组件与实例的关系:

代码语言:javascript
复制
Vue.component('todo-item', {
 props: ['content'],
 template: '<li @click="handleClick">{{content}}</li>',
 methods: {
  handleClick: function() {
   alert('clicked')
  }
 }
})

todolist删除功能:


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.07.04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 计算属性和侦听器
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档