[前端]前段Vue框架/前后端分离

 

Idea---》setting--》plugins

搜索Vue进行安装

 

简单实现官方演示 

新建项目--》创建demo01.html

第一个Vue实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

</head>
<body>

<!--View层-->
<div id="app">
    {{message}}
</div>

<!--导入vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
    var vm=new Vue({
        //绑定
        el:"#app",
        //model层
        data:{
            message:"hello,vue!"
        }
    });

</script>

</body>
</html>
View Code

悬停显示

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

</head>
<body>
<div id="app">
    <span v-bind:title="message">
        鼠标悬停几秒
    </span>
</div>
<!--导入vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
    var app2=new Vue({
        el:'#app',
        data:{
            message:'hello,vue'
        }
    })
</script>
</body>
</html>
View Code

循环-判断

<!DOCTYPE html>
<html lang="en" xmlns:v-if="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--View层-->
<div id="app">
    <h1 v-if:="ok">Yes</h1>
    <h1 v-else>No</h1>
</div>
<!--导入vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
    var vm=new Vue({
        el:"#app",
        data:{
            ok:true
        }
    })
</script>

</body>
</html>
View Code
<!DOCTYPE html>
<html lang="en" xmlns:v-if="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--View层-->
<div id="app">
   <li v-for="item in items">
       {{item.message}}
   </li>
</div>
<!--导入vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
    var vm=new Vue({
        el:"#app",
        data:{
            items:[
                {message:'赵某人'},
                {message:'学习中'}
            ]
        }
    })
</script>

</body>
</html></html>
View Code

 绑定组件

<!DOCTYPE html>
<html lang="en" xmlns:v-if="http://www.w3.org/1999/xhtml" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--View层-->
<div id="app">
    <p>{{message}}</p>
    <button v-on:click="sayHi">Click Me</button>
</div>
<!--导入vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
    var vm=new Vue({
        el:"#app",
        data:{
            message:"hello,vue!"
        },
        methods: {
            sayHi: function () {
                alert(this.message)
            }
        }
    });
</script>

</body>
</html></html>
View Code

双向绑定:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--View层-->
<div id="app">
    输入的文本:<input type="text" v-model="message"> {{message}}
</div>
<!--导入vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
    var vm=new Vue({
        el:'#app',
        data:{
            message:'123'
        }
    });
</script>


</body>
</html>
View Code
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="app">
    性别:
    <input type="radio" name="sex" value="男" v-model="message"><input type="radio" name="sex" value="女" v-model="message"><p>
        选中了谁?{{message}}
    </p>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
    var vm=new Vue({
        el:"#app",
        data:{
            message:''
        }
    });
</script>

<div id="app02">
    下拉框
    <select v-model="selected">
        <option value="">---请选择---</option>
        <option>A</option>
        <option>B</option>
        <option>C</option>
    </select>
    选中了{{selected}}
</div>
<script>
    var vm=new Vue({
        el:"#app02",
        data:{
            selected:''
        }
    });
</script>
</body>
</html>
View Code

自定义组件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="app">
    <zhaolucang></zhaolucang>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
    //定义一个vue组件
    Vue.component("zhaolucang",{
        template:'<h1>这是我自定义的内容</h1>'
    });
    //绑定id为app的div
    var vm=new Vue({
        el:"#app",
    });
</script>
</body>
</html>
View Code

显示json

data.json

{
  "name":"赵路仓",
  "url": "http://baidu.com",
  "page": "1",
  "isNonProfit":"true",
  "address": {
    "street": "长安区",
    "city":"河北石家庄",
    "country": "中国"
  },
  "links": [
    {
      "name": "B站",
      "url": "https://www.bilibili.com/"
    },
    {
      "name": "4399",
      "url": "https://www.4399.com/"
    },
    {
      "name": "百度",
      "url": "https://www.baidu.com/"
    }
  ]
}
View Code
<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--解决闪烁问题-->
    <style>
        [v-clock]{
            display:none;
        }
    </style>
</head>
<body>
<div id="vue" v-clock>
    <div>{{info.name}}</div>
    <div><a v-bind:href="info.url">{{info.url}}</a></div>
</div>
<!--引入js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script type="text/javascript">
    var vm = new Vue({
        el: '#vue',
        data(){
            return{
                //请求的返回参数合适,必须和json字符串一样
                info:{
                    name:null,
                    address:{
                        street:null,
                        city:null,
                        country:null
                    },
                    url:null
                }
            }
        },
        mounted(){//钩子函数 连式编程
            axios.get('../data.json').then(response=>(this.info=response.data))
        }
    });
</script>

</body>
</html>
View Code

计算属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

</head>
<body>

<!--View层-->
<div id="app">
    <!--方法必须加()-->
    <p>时间戳{{currentTime1()}}</p>
    <p>时间戳{{currentTime2}}</p>
</div>

<!--导入vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
    var vm=new Vue({
        //绑定
        el:"#app",
        //model层
        data:{
            message:"hello,vue!"
        },
        methods:{//方法
          currentTime1:function () {
              return Date.now();//返回一个时间戳
          }
        },
        computed:{//计算属性
            currentTime2:function () {
                this.message; //mybatis
                return Date.now();//返回一个时间戳
            }
        }
    });
</script>
</body>
</html>
View Code

插槽

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

</head>
<body>

<!--View层-->
<div id="app">
   <todo>
       <todo-title slot="todo-title" :props_title="data_title"></todo-title>
       <todo-items slot="todo-items" v-for="item in todoItems" :props_item="item"></todo-items>
   </todo>
</div>

<!--导入vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
    //slot标签定义插槽
    Vue.component("todo",{
       template:'<div>\
                    <slot name="todo-title"></slot>\
                    <ul>\
                        <slot name="todo-items"></slot>\
                    </ul>\
           </div>'
    });
    Vue.component("todo-title",{
        props:['props_title'],
        template: '<div>{{props_title}}</div>'
    });
    Vue.component("todo-items",{
        props:['props_item'],
        template:'<li>{{props_item}}</li>'
    })
    var vm=new Vue({
        //绑定
        el:"#app",
        //model层
        data:{
            data_title:"赵路仓",
            todoItems:['赵路仓','Java','学习中']
        }
    });

</script>

</body>
</html>
View Code

 

posted @ 2021-04-10 13:19  雾霾王者  阅读(115)  评论(0编辑  收藏  举报