vue基础知识

可查看该系列博客,写的非常好:https://blog.csdn.net/fungleo/article/details/77575077

 

script方式引入:——带版本的

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>

 

申明式渲染:{{ }}

//html
<div id="app">
    {{ message }}
</div>

//JS
var app = new Vue({
    el: '#app',
    data: {
        message: 'Hello Vue!',
    }
})
    

 

绑定式:v-bind

// HTML
<div id="app-2">
  <span v-bind:title="message">
    鼠标悬停几秒钟查看此处动态绑定的提示信息!
  </span>
</div>

// JS
var app2 = new Vue({
  el: '#app-2',
  data: {
    message: '页面加载于 ' + new Date().toLocaleString()
  }
})

 

条件与循环:v-if

//HTML
<div id="app-3">
  <p v-if="seen">现在你看到我了</p>
</div>

//JS
var app3 = new Vue({
  el: '#app-3',
  data: {
    seen: true
  }
})

 

循环:v-for

//HTML
<div id="app-4">
  <ol>
    <li v-for="todo in todos">
      {{ todo.text }}
    </li>
  </ol>
</div>

//JS
var app4 = new Vue({
  el: '#app-4',
  data: {
    todos: [
      { text: '学习 JavaScript' },
      { text: '学习 Vue' },
      { text: '整个牛项目' }
    ]
  }
})

 

处理用户输入:

v-on:click

//HTML
<div id="app-5">
  <p>{{ message }}</p>
  <button v-on:click="reverseMessage">逆转消息</button>
</div>

//JS
var app5 = new Vue({
  el: '#app-5',
  data: {
    message: 'Hello Vue.js!'
  },
  methods: {
    reverseMessage: function () {
      this.message = this.message.split('').reverse().join('')
    }
  }
})

 

双向绑定:v-model

//HTML
<div id="app-6">
  <p>{{ message }}</p>
  <input v-model="message">
</div>

//JS
var app6 = new Vue({
  el: '#app-6',
  data: {
    message: 'Hello Vue!'
  }
})

 

绑定页面模板:

//HTML
<div id="app-6"></div>

//JS
var app6 = new Vue({
    el: '#app-6',
    template:'<h1>{{message}}</h1>',
    data: {
        message: 'Hello Vue!'
    }
})

 

组件:——组件也是实例,也可以写自己的方法等。

//全局组件

// JS部分,定义一个组件
Vue.component('todo-item', {
    template: '<li>这是个待办项</li>'
})
new Vue({ el: '#components-demo' })

// HTML部分,使用组件
<div id="components-demo">
    <todo-item></todo-item> 
</div>

——(记得要new Vue组件的父级哦)

 

//局部组件:

//HTML部分
<div id="components-demo">
    <todo-item></todo-item> 
</div>

//JS部分,// 定义一个局部组件
var todoItem = {
    template: '<li>你好啊</li>'
}
    
new Vue({ 
    el: '#components-demo',
    components: {
     "todo-item": todoItem,
    }
});

 

 //官方例子:

//HTML部分
<div id="app-7">
    <ol>
        <todo-item 
        v-for="item in groceryList" 
        v-bind:todo="item" 
        v-bind:key="item.id">
        </todo-item>
    </ol>
</div>


//JS部分
Vue.component('todo-item', {
    props: ['todo'],
    template: '<li>{{ todo.text }}</li>'
})

var app7 = new Vue({
    el: '#app-7',
    data: {
        groceryList: [
        { id: 0, text: '蔬菜' },
        { id: 1, text: '奶酪' },
        { id: 2, text: '随便其它什么人吃的东西' }
        ]
    }
})

 

父组件向子组件传递参数:通过属性

子组件向父组件传递参数:子组件发布事件,父组件订阅事件v-on。 

 

 

// vue 引入文件的两种方式:

// 1、在main.js中引入,这种要求文件在本地
import 'element-ui/lib/theme-default/index.css'
// 2、在组件中引入,可以本地文件或线上文件
@import "../css/style.css";
@import "//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css";

 

 

  

 

————占位符

posted @ 2018-10-11 12:39  小寒1206  阅读(121)  评论(0编辑  收藏  举报