vueJs学习笔记1

版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载 @爬动的小蜗牛 https://blog.csdn.net/qq_34649947/article/details/83504312

vueJS学习目录:

教程: https://www.runoob.com/vue2/vue-class-style.html

 

table使用: https://c.runoob.com/codedemo/5440

 

 

vue-element-admin项目地址与运行步骤:https://github.com/PanJiaChen/vue-element-admin

 

  1. 构建后会出现:node_modules文件夹,在vue-element-admin目录下
  2. Build以后会生成一个dist文件夹。
  3. 运行的话需要参见https://blog.csdn.net/u014054437/article/details/79981307

具体步骤如下:

1.安装express-generator生成器

执行  $ npm install express-generator -g  进行安装

2. 创建一个express项目

执行  $ express expressDemo (expressDemo是项目名)

3.进入expressDemo目录,安装项目依赖

$ cd expressDemo                                                                               

$ npm install

把dist目录下的所有文件复制到express项目的public文件夹下

运行 $ npm start 启动expressDemo

打开浏览器,输入 http://localhost:3000

 

                  

  1. expressDemo:是运行的目录

 

vueJS学习笔记来自菜鸟教程:

1.

<div id="vue_det">

    <h1>site : {{site}}</h1>

    <h1>url : {{url}}</h1>

    <h1>{{details()}}</h1>

</div>

<script type="text/javascript">

    var vm = new Vue({

        el: '#vue_det',

        data: {

            site: "菜鸟教程",

            url: "www.runoob.com",

            alexa: "10000"

        },

        methods: {

            details: function() {

                return  this.site + " - 学的不仅是技术,更是梦想!";

            }

        }

    })

</script>

 

//输出对象和函数返回值

 

<div id = “vue_det”>

         <h1>site: {{ site }} </h1>

         <h1>url: {{url}}</h1>

         <h1>{{details()}}</h1>

</div>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

//双向绑定:

 

<div id="vue_det">

    <h1>site : {{site}}</h1>

    <h1>url : {{url}}</h1>

    <h1>Alexa : {{alexa}}</h1>

</div>

<script type="text/javascript">

// 我们的数据对象

var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}

var vm = new Vue({

    el: '#vue_det',

    data: data

})

// 它们引用相同的对象!

document.write(vm.site === data.site) // true

document.write("<br>")

// 设置属性也会影响到原始数据

vm.site = "Runoob"

document.write(data.site + "<br>") // Runoob

 

// ……反之亦然

data.alexa = 1234

document.write(vm.alexa) // 1234

</script>

 

 

 

 

除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。

<div id="vue_det">

    <h1>site : {{site}}</h1>

    <h1>url : {{url}}</h1>

    <h1>Alexa : {{alexa}}</h1>

</div>

<script type="text/javascript">

// 我们的数据对象

var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}

var vm = new Vue({

    el: '#vue_det',

    data: data

})

 

document.write(vm.$data === data) // true

document.write("<br>") // true

document.write(vm.$el === document.getElementById('vue_det')) // true

</script>

 

 

JavaScript表达式

 

<div id="app">

    {{5+5}}<br>

    {{ ok ? 'YES' : 'NO' }}<br>

    {{ message.split('').reverse().join('') }}

    <div v-bind:id="'list-' + id">菜鸟教程</div>

</div>

   

<script>

new Vue({

  el: '#app',

  data: {

    ok: true,

    message: 'RUNOOB',

    id : 1

  }

})

</script>

 

 

<div v-bind:id="'list-' + id">菜鸟教程</div>

意思就是v-bind一个id,并且命名为’list-id’

 

<p v-if="seen">现在你看到我了</p>

 v-if 指令将根据表达式 seen 的值(true false )来决定是否插入 p 元素。

 

 

 

 

 

 

 

 

 

 

 

 

<div id="app">

    <pre><a v-bind:href="url">菜鸟教程</a></pre>

</div>

   

<script>

new Vue({

  el: '#app',

  data: {

    url: 'http://www.runoob.com'

  }

})

</script>

 

在这里 href 是参数,告知 v-bind 指令将该元素的 href 属性与表达式 url 的值绑定。

 

preventDefault() 方法阻止元素发生默认的行为(例如,当点击提交按钮时阻止对表单的提交)。

 

input 输入框中我们可以使用 v-model 指令来实现双向数据绑定:

 

<div id="app">

    <p>{{ message }}</p>

    <input v-model="message">

</div>

   

<script>

new Vue({

  el: '#app',

  data: {

    message: 'Runoob!'

  }

})

</script>

 

v-model 指令用来在 inputselecttextcheckboxradio 等表单控件元素上创建双向数据绑定,根据表单上的值,自动更新绑定的元素的值。

 

 

 

arrayObject.slice(start,end) 参数描述 start 必需。规定从何处开始选取

 

 

 

 

v-bind 缩写

Vue.js 为两个最为常用的指令提供了特别的缩写:

<!-- 完整语法 -->

<a v-bind:href="url"></a>

<!-- 缩写 -->

<a :href="url"></a>

v-on 缩写

<!-- 完整语法 -->

<a v-on:click="doSomething"></a>

<!-- 缩写 -->

<a @click="doSomething"></a>

 

 

我们也可以使用 v-show 指令来根据条件展示元素:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>

<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>

</head>

<body>

<div id="app">

    <h1 v-show="ok">Hello!</h1>

</div>

        

<script>

new Vue({

  el: '#app',

  data: {

    ok: true

  }

})

</script>

</body>

</html>

 

 

 

v-for 指令需要以 site in sites 形式的特殊语法, sites 是源数据数组并且 site 是数组元素迭代的别名。

v-for 可以绑定数据到数组来渲染一个列表:

 

<div id="app">

  <ol>

    <li v-for="site in sites">

      {{ site.name }}

    </li>

  </ol>

</div>

 

<script>

new Vue({

  el: '#app',

  data: {

    sites: [

      { name: 'Runoob' },

      { name: 'Google' },

      { name: 'Taobao' }

    ]

  }

})

</script>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

computed setter

computed 属性默认只有 getter ,不过在需要时你也可以提供一个 setter

 

<div id="app">

  <p>原始字符串: {{ message }}</p>

  <p>计算后反转字符串: {{ reversedMessage }}</p>

</div>

 

<script>

var vm = new Vue({

  el: '#app',

  data: {

    message: 'Runoob!'

  },

  computed: {

    // 计算属性的 getter

    reversedMessage: function () {

      // `this` 指向 vm 实例

      return this.message.split('').reverse().join('')

    }

  }

})

</script>

 

 

可以说使用 computed 性能会更好,但是如果你不希望缓存,你可以使用 methods 属性。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.class的使用方法

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>

<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>

<style>

.active {

         width: 100px;

         height: 100px;

         background: green;

}

.text-danger {

         background: red;

}

</style>

</head>

<body>

<div id="app">

  <div class="static"

     v-bind:class="{ active: isActive, 'text-danger': hasError }">

  </div>

</div>

 

<script>

new Vue({

  el: '#app',

  data: {

    isActive: true,

         hasError: true

  }

})

</script>

</body>

</html>

 

 

猜你喜欢

转载自blog.csdn.net/qq_34649947/article/details/83504312