赞
踩
1、Vue:尤雨溪主导开发
2、React:脸书(Facebook)主导开发
3、Angular:谷歌主导开发
华人开发,入门简单,所以国内用Vue的较多。
1、直接引入vue.js文件
2、基于Node环境创建Vue项目(使用vue/cli创建初始化一个Vue项目)
- <!-- 开发环境版本,包含了有帮助的命令行警告 -->
- <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
- <!DOCTYPE html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>index</title>
- </head>
-
- <body>
- <h1>hello world!</h1>
- <div id="app">
- <!-- 表达式 -->
- <h1>{{message}}</h1>
- </div>
- <!-- 开发环境版本,包含了有帮助的命令行警告 -->
- <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
- <script>
- // 创建Vue的实例
- new Vue({
- // 绑定id为app的元素
- el: "#app",
- // 数据
- data: {
- message: "hello Vue!"
- }
- })
- </script>
- </body>
-
- </html>
1、将数据直接写在标签里面
2、使用Vue,来提供数据。
DOM:先获取DOM,再操作节点。
Vue:
新建一个Vue实例,让div变成Vue实例的一个应用。
这个应用里面的标签,就可以用Vue来进行管理了。
以后,就不用考虑DOM操作了,而是,只操作数据,让数据和页面的呈现进行一个绑定。
数据变,页面显示也会变。
- {{message}}
- {{message + "你好"}}
- <body>
- <h1>hello world!</h1>
- <div id="app">
- <h1>{{message + "你好"}}</h1>
- <img src="../picture/java.jpg" alt="">
- <img v-bind:src="url" alt="">
- </div>
-
- <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
- <script>
- new Vue({
- el: "#app",
- data: {
- message: "hello Vue!",
- url: "../picture/java.jpg"
- }
- })
- </script>
- </body>
显示:
v-bind:让Vue实例里面的数据,直接绑定到标签的属性值上。
v-bind:是指令,可以简写:
<img :src="url" alt="">
- <body>
- <h1>hello world!</h1>
- <div id="app">
- <h1>{{message + "你好"}}</h1>
- <img src="../picture/java.jpg" alt="">
- <img :src="url" alt="">
- <button v-on:click="sayHello">测试按钮</button>
- </div>
-
- <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
- <script>
- new Vue({
- el: "#app",
- data: {
- message: "hello Vue!",
- url: "../picture/php.jpg"
- },
- methods: {
- sayHello() {
- console.log("hello");
- }
- }
- })
- </script>
- </body>
测试:
v-on简写:
<button @click="sayHello">测试按钮</button>
- <body>
- <div id="app">
- <img :src="url" alt="">
- <button @click="turn">改变图片</button>
- </div>
-
- <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
- <script>
- new Vue({
- el: "#app",
- data: {
- message: "hello Vue!",
- url: "../picture/java.jpg"
- },
- methods: {
- turn() {
- this.url = "../picture/php.jpg"
- }
- }
- })
- </script>
- </body>
测试:
- <body>
- <div id="app">
- <button @click="decrease">-</button>
- <span>{{number}}</span>
- <button @click="increase">+</button>
- </div>
-
- <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
- <script>
- new Vue({
- el: "#app",
- data: {
- number: 0
- },
- methods: {
- increase() {
- this.number++;
- },
- decrease() {
- this.number--;
- }
- }
- })
- </script>
- </body>
测试:
cnpm install -g @vue/cli
会有点慢,可能要半小时,而且会报错,请耐心等待!
vue create hello
项目名不能大写。
选择Vue2:(用⬇)
安装中...有装yarn的,会使用yarn下载依赖。
安装较慢,耐心等待,或科学上网。
安装成功:
进入项目目录,启动服务器:
- cnpm run serve
- yarn serve
注意:是serve,不是server。
服务启动成功:
http://localhost:8080
src是开发的关键目录。
- import Vue from 'vue'
- import App from './App.vue'
-
- // 配置开发选项,false:报错会有友好的提示。上线之后,用true。
- Vue.config.productionTip = false
-
- new Vue({
- render: h => h(App),
- }).$mount('#app')
import是ES6的模块化语法,可以引入第三方模块。
ES6的暴露接口:export。
以前使用Require()引入,module.exports()来暴露模块。
A、组件化开发概述
以前,我们是使用一个一个标签,组成的页面。
以.vue为后缀的文件是Vue的单文件组件。
这样,用组件拆分的方式开发项目,思路清晰,简洁高效,而且还可以复用相同的组件。
- <template>
- <!-- 网页模板,编写html代码 -->
- <div id="app">
- <img alt="Vue logo" src="./assets/logo.png">
- <HelloWorld msg="Welcome to Your Vue.js App" />
- </div>
- </template>
-
- <script>
- // js代码
- import HelloWorld from "./components/HelloWorld.vue";
-
- export default {
- name: "App",
- components: {
- HelloWorld,
- },
- };
- </script>
-
- <style>
- /* css代码 */
- #app {
- font-family: Avenir, Helvetica, Arial, sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- text-align: center;
- color: #2c3e50;
- margin-top: 60px;
- }
- </style>
A、<template>
这样写会报错:
可以这样写:
template里面只能有一个标签。
B、<script>
- <template>
- <div>
- <h1>{{message}}</h1>
- <button @click="sayHello">sayHello</button>
- </div>
- </template>
-
- <script>
- export default {
- data() {
- return {
- message: "hello vue",
- };
- },
- methods: {
- sayHello() {
- alert("hello");
- },
- },
- };
- </script>
-
- <style>
- </style>
这边的data(),是一个函数。
效果如下:
以后开发Vue时,是使用启动服务器的方式,这样才能使用更加高效快捷的组件化,模块化的开发方式。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。