VUE 基础语法

html语法

v-model  #双向绑定
v-once   #一次绑定数据不跟随变化
v-text   #直接输出文本  不解析内容html标签
v-html   #页面正常解析内容中的html标签
v-bind:id  #数据绑定
v-bind:{attr_name}  #动态数据绑定
:{attr_name}    #缩写 attr_name为属性名称
v-on:click   #绑定事件
@click     #绑定事件缩写
v-if        #判断是否渲染
v-else
key       #管理可复用元素
v-show     #显示或隐藏元素
v-for="item in items"   #for循环
v-for="(item,index) in items"
v-for="(item,name,index) in items"

js语法

var vm = new Vue({
        el:"#app",
        data:{
            message:'response msg',
            info:'info str',
            watch:1,
            res:1,
        },
        watch:{
            watch(newN,oldN){
                this.res = newN*newN;
            }
        },
        methods:{
            dosomething(){
                console.log('click')
            },
            changeinfo(){
                vm.reversedInfo = 'new info';
            }
        },
        computed:{
            reversedMessage(){
                this.message=this.message.split('').reverse().join('');
                return this.message
            },
            reversedInfo:{
                get()
                {
                    return this.info.split('').reverse().join('');
                },
                set(newValue)
                {
                    this.info = newValue;
                }
            }
        }
    });
    vm.$watch('watch',function(newN,oldN){
        this.res = newN*newN;
    });

App.vue

<template>
    <div>
        <Menu :menus="menus" :wenSite="webSite" :addMenu="addMenu" @addMenu="addMenu" ref="menu"></Menu>
    </div>
</template>
<script>
import Menu from './components/Menu';
export default{
    name:'App',
    components:{
        Menu
    },
    data(){
        return {
            menus:[
                {id:1,name:'***'},...
            ],
            webSite:{
                url:'url',...
            }
        },
        methods:{
            addMenu(menu){
                this.meuns.push(menu)
            }
        },
        mounted(){
            this.$refs.menu.$on('addMenu',this.addMenu);
        }
    }
}
</script>

Menu.vue

<template>
    <ul>
        <li v-for="(menu,index) in menus" "key="menu.id">
            <a :herf="'url'+menu.id">{{menu.name}}</a>
        </li>
    </ul>
    <input type="text" v-model="content"/>
    <button @click="add"></button>
</template>

<script>
    export default{
        name:'Menu',
        props:['menus','webSite','addMenu'],
        data(){
            return {
                content:''
            }
        },
        methods:{
            add(){
                const content = this.content.trim();
                if(!content){
                    alert('菜单名称不能为空);
                    return;
                }
                let menu = {id:*,name:content}
                this.addMenu(menu)
                this.$emit('addMenu',$menu);//对应  @addMenu方式调用
            }
        }
    }
</script>

### Vue.js 基础语法教程 Vue.js 是一种用于构建用户界面的渐进式框架,其核心库专注于视图层,并允许与其他库或项目集成。以下是关于 Vue.js 基础语法的一些重要知识点: #### 1. 模板语法 Vue 使用基于 HTML 的模板语法,使开发者能够在 DOM 上声明式的绑定数据[^1]。这种语法使得 HTML 和 JavaScript 能够无缝协作。 ```html <div id="app"> {{ message }} </div> <script> var app = new Vue({ el: '#app', data: { message: 'Hello, Vue!' } }); </script> ``` 上述代码展示了如何通过 `{{ }}` 插值表达式来显示变量的内容[^2]。 #### 2. 数据绑定 Vue 提供了双向数据绑定的功能,这意味着当模型发生变化时,视图会自动更新;反之亦然。这可以通过 `v-model` 指令实现[^3]。 ```html <input v-model="message" placeholder="编辑此输入框"> <p>消息是: {{ message }}</p> ``` 在此示例中,每当用户更改 `<input>` 输入框中的内容时,页面上的 `{{ message }}` 部分也会实时更新[^4]。 #### 3. 方法调用 在 Vue 实例的方法中,`this` 关键字指向当前 Vue 实例本身,因此可以直接访问实例的数据和其他属性。 ```javascript new Vue({ el: '#example', data: { name: 'Vue.js' }, methods: { greet: function () { alert('你好,' + this.name); } } }); <!-- 触发方法 --> <button v-on:click="greet">打招呼</button> ``` 这里定义了一个名为 `greet` 的方法,在按钮点击事件触发时执行该函数。 #### 4. 条件渲染与列表渲染 条件渲染可通过 `v-if` 或者 `v-show` 指令完成,而循环渲染则利用 `v-for` 指令来遍历数组或者对象集合。 ```html <ul id="todo-list"> <li v-for="(todo, index) in todos" :key="index">{{ todo.text }}</li> </ul> <script> var example = new Vue({ el: '#todo-list', data: { todos: [ { text: '学习 Vue.js' }, { text: '编写组件' } ] } }); </script> ``` 这段代码片段演示了如何使用 `v-for` 渲染一个待办事项列表。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PHP(Mr. Hamster)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值