前端-Vue基础1

摘要:
--is_Bg:true显示,is_Bg:false不显示-->

Vue核心思想:只要改变数据,页面就会发生改变

1.引入vue

1.下载vue.js

2.在script标签的src属性中,引入vue.js

<script src="js/vue.js"></script>

2.vue实例

el:vue接管的div元素,注:只能接管一个div,所有需要vue处理的,必须写在这个div中

data:数据

methods:方法

new Vue({
        //接管一个div
        el:'#app',
        data:{
            msg:'test',
            count:0,
            url:'https://www.baidu.com',
            classes:['box','bg'],
            phoneNumber:10086,
            // games:['绝地求生','英雄联盟','王者荣耀']
            //games:{"name":"绝地求生","company":'dfsfs'}
            games:[{"name":"绝地求生"},{"name":"英雄联盟"},{"name":"王者荣耀"}]
        },
        methods:{
            change:function () {
                this.msg='fdsfsf'
            },
            changeclass:function () {
                this.classes=['bg']
            }
        }
    })

3.v-show和v-if

接口测试平台,成功,失败,根据后台返回的结果状态,显示对应的文案

v-show 如果条件为False,则对标签加display=none

v-if 只有符合条件的才加载

<body>
<div id="app">
    <span v-if="phoneNumber==10086">移动</span>
    <span v-else-if="phoneNumber==10010">联通</span>
    <span v-else>电信</span>
</div>

<script src="js/vue.js"></script>
<script>
    new Vue({
        el:'#app',
        data:{
            phoneNumber:10086
        }
    })
</script>

</body>
<body>
<div id="app">
    <span v-show="phoneNumber==10086">移动</span>
</div>

<script src="js/vue.js"></script>
<script>
    new Vue({
        el:'#app',
        data:{
            phoneNumber:10010
        }
    })
</script>

</body>

4.v-on:click (绑定事件)

全写:v-on:click

简写:@click

click对应的方法是methods的方法

<body>
<div id="app">
    {{msg}}
    <input type="button" value="denglu" @click="change">
</div>


<script src="js/vue.js"></script>
<script>
    new Vue({
        el:'#app',
        data:{
            phoneNumber:10010,
            msg:'v-on:click test'
        },
        methods:{
            change:function () {
                this.msg = 'change text'
            }
        }
    })
</script>

</body>

5.v-bind(标签属性绑定)

全写:v-bind:href

简写:href

可以使用data中的数据

class的样式绑定

<body>
<div id="app">
<!--    {{url}}这种只能用于两个标签中,属性中不能使用,如果属性中要使用,则要用v-bind,简写:-->
    <a :href="url">{{url}}</a>
</div>
<script src="js/vue.js"></script> <script> new Vue({ el:'#app', data:{ phoneNumber:10010, msg:'v-on:click test', url:'https://www.baidu.com' }, methods:{ change:function () { this.msg = 'change text' } } }) </script> </body>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .bg{
            background-color: blue;
            width: 100px;
            height: 200px;
        }
        .box{
            border: 1px solid red;
        }
    </style>
</head>
<body>
<div id="app">
    <div :class="classes"></div>
<!--    is_bg:true显示,is_bg:false不显示-->
    <div :class="{bg:is_bg}"></div>
    <input type="button" value="change-Class" @click="changeClasses">
</div>


<script src="js/vue.js"></script>
<script>
    new Vue({
        el:'#app',
        data:{
            phoneNumber:10010,
            msg:'v-on:click test',
            url:'https://www.baidu.com',
            classes:['bg','box'],
            is_bg:true
        },
        methods:{
            change:function () {
                this.msg = 'change text'
            },
            changeClasses:function () {
                this.classes = ['bg']

            }

        }
    })
</script>

</body>

6.v-for(循环)

v-for支持list,map

要循环哪个标签,就将v-for写在那个标签上

<body>
<div id="app">
<!--    v-for list-->
    <ul>
        <li v-for="(game,index) in games">{{index}}-{{game}}</li>
    </ul>

<!--    v-for map-->
    <ul>
        <li v-for="(value,key) in games1">{{key}}--{{value}}</li>
    </ul>

    <ul>
        <li v-for="game1 in games2">{{game1.name}}</li>
    </ul>
</div>


<script src="js/vue.js"></script>
<script>
    new Vue({
        el:'#app',
        data:{
            games:['绝地求生','英雄联盟','王者荣耀'],
            games1:{"name":"绝地求生","company":'dfsfs'},
            games2:[{"name":"绝地求生"},{"name":"英雄联盟"},{"name":"王者荣耀"}]
        },
        methods:{
            change:function () {
                this.msg = 'change text'
            },
            changeClasses:function () {
                this.classes = ['bg']

            }

        }
    })
</script>

</body>

显示结果如图所示:

前端-Vue基础1第1张

7.v-model(双向数据绑定)

通过修改标签 例:切换radio、checkbox...都会对data中绑定的数据有影响。

通过事件触发方法,修改data中数据,反向作用域radio、checkbox.....

a)、input

<body>
<div id="app">
    <div>{{input_value}}</div>
    <input type="text" v-model="input_value">
    <input type="button" value="change" @click="change">
</div>

<script src="js/vue.js"></script>
<script>
    new Vue({
        el:'#app',
        data:{
            input_value:'default'
        },
        methods:{
            change:function () {
                this.input_value='change text'
            }

        }
    })
</script>

</body>

效果如图所示:

前端-Vue基础1第2张

b)、radio

<div id="app">
    <div>{{sex}}</div>
    <input type="radio" name="sex" value="1" v-model="sex"><input type="radio" name="sex" value="2" v-model="sex"></div>


<script src="js/vue.js"></script>
<script>
    new Vue({
        el:'#app',
        data:{
            sex:'1'
        },
        methods:{
            
        }
    })
</script>

</body>

显示效果如图所示:

前端-Vue基础1第3张

c)、checkbox —> value 配置成 [] 用于存储选择的多个数据

<body>
<div id="app">
    <div>{{movies}}</div>
    <input type="checkbox" name="movie" value="钢铁侠" v-model="movies">钢铁侠
    <input type="checkbox" name="movie" value="复仇者联盟" v-model="movies">复仇者联盟
    <input type="checkbox" name="movie" value="蜘蛛侠" v-model="movies">蜘蛛侠
    <input type="checkbox" name="movie" value="绿巨人" v-model="movies">绿巨人

</div>


<script src="js/vue.js"></script>
<script>
    new Vue({
        el:'#app',
        data:{
            movies:[]
        },
        methods:{

        }
    })
</script>

</body>

显示效果如图:

前端-Vue基础1第4张

d)、select —> value 配置成 str

<body>
<div id="app">
    <div>{{movie}}</div>
    <select v-model="movie">
        <option disabled value="">请选择</option>
        <option  value="钢铁侠" >钢铁侠</option>
        <option  value="复仇者联盟" >复仇者联盟</option>
        <option  value="绿巨人" >绿巨人</option>
    </select>

</div>


<script src="js/vue.js"></script>
<script>
    new Vue({
        el:'#app',
        data:{
            movie:'钢铁侠'
        },
        methods:{

        }
    })
</script>

</body>
<body>
<div id="app">
    <div>{{movie}}</div>
    <select v-model="movie">
        <option disabled value="">请选择</option>
        <option  v-for="option in options" :value="option.id">{{option.name}}</option>
    </select>

</div>


<script src="js/vue.js"></script>
<script>
    new Vue({
        el:'#app',
        data:{
            movie:2,
            options:[{"name":"变形金刚","id":1}, {"name":"复仇者联盟","id":2}, {"name":"飞驰人生","id":3}]
        },
        methods:{

        }
    })
</script>

</body>

免责声明:内容来源于网络,仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇苹果公司开发者账号注册流程详解网络流(一)基础知识篇下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue组件如何引入外部.js/.css/.scss文件

可在相应的单vue组件引入相应文件。 1、引入外部.js文件。   2、引入外部.css文件。     使用@import引入外部css,作用域是全局的,也可在相应的单vue组件引入,import并不是引入代码到<style></style>里面,而是发起新的请求获得样式资源,并且没有加scoped。     注:如果有样式时,应该...

Vue 折叠面板Collapse在标题上添加组件后,阻止面板冒泡的用法

iView组件中,折叠面板Collapse点击面板标题部分,会出现面板收起或展开的效果。那么在面板标题后面再添加下拉框之类的组件时,会出现跟面板点击一样的效果,这时候就需要阻止冒泡的用法了。具体代码: <!--折叠面板组件on-change事件即可获得当前展开面板的值,value即为默认面板的值,可绑定变量值,accordion选项即一次只能展开一个...

Vue项目的一些优化策略

Vue项目完成后就要从开发环境转成生产环境 一些第三方的包体积过大,导致生成js文件过于庞大,这是时候可以生成打包报告来查看项目中的问题 1.生成报告有两种方式,一种使用npm run build --report 2.另一种使用vue脚手架的ui可视化面板,在项目中输入vue ui  3.点击生产环境下的运行按钮,可以看到打包出来的js文件一共有2M之...

Vue 打包成APP后首屏出现白屏问题

  1、npm run build打包后页面全屏空白   解决位置:config/index.js文件:把assetsPublicPath: '/'改为assetsPublicPath: './' 2、npm run build打包后  底部的选项卡正常显示,但是内容白屏,只有点击一次之后才能出现   解决位置:router/index.js 里 路由设置...

js:自定义属性(获取、设置、移除)

1、获取属性的值的方法 (1)element.属性 <body> <input id="input1" value="未失去焦點"></input> <script> input1.onblur=function(){...

中文前端UI框架Kit(十三)使用RequireJs托管你的类库和js代码

号外:kitjs官方讨论QQ群建立了,QQ群号88093625,欢迎大家加入,讨论前端相关话题 kit内置支持requireJs托管,可以使用requireJs加载和管理KitJs框架内的所有组件和类库 最近园子里有很多讨论requireJs(http://requirejs.org/)的兄弟,requireJs托管js代码的好处有 1.通过闭包提供了一个...